Package org.bedework.carddav.server
Class CarddavBWIntf
- java.lang.Object
-
- org.bedework.webdav.servlet.shared.WebdavNsIntf
-
- org.bedework.carddav.server.CarddavBWIntf
-
- All Implemented Interfaces:
Serializable,org.bedework.util.logging.Logged
public class CarddavBWIntf extends org.bedework.webdav.servlet.shared.WebdavNsIntfThis class implements a namespace interface for the webdav abstract servlet. One of these interfaces is associated with each current session.As a first pass we'll define webdav urls as starting with
/user/user-name/calendar-name/
uri resolution should be made part of the core calendar allowing all such distinctions to be removed from this code.
The part following the above prefix probably determines exactly what is delivered. We may want the entire calendar (or what we show by default) or a single event from the calendar
- Author:
- Mike Douglass douglm rpi.edu
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCarddavBWIntf.QueryResultResult from query-
Nested classes/interfaces inherited from class org.bedework.webdav.servlet.shared.WebdavNsIntf
org.bedework.webdav.servlet.shared.WebdavNsIntf.AclInfo, org.bedework.webdav.servlet.shared.WebdavNsIntf.Content, org.bedework.webdav.servlet.shared.WebdavNsIntf.PutContentResult, org.bedework.webdav.servlet.shared.WebdavNsIntf.SessCt
-
-
Constructor Summary
Constructors Constructor Description CarddavBWIntf()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacceptMkcolContent(javax.servlet.http.HttpServletRequest req)voidaddNamespace(org.bedework.util.xml.XmlEmit xml)booleancanPut(org.bedework.webdav.servlet.shared.WebdavNsNode node)voidclose()voidcopyMove(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode from, org.bedework.webdav.servlet.shared.WebdavNsNode to, boolean copy, boolean overwrite, int depth)voidcreate(org.bedework.webdav.servlet.shared.WebdavNsNode node)voidcreateAlias(org.bedework.webdav.servlet.shared.WebdavNsNode alias)voiddelete(org.bedework.webdav.servlet.shared.WebdavNsNode node)voidemitAcl(org.bedework.webdav.servlet.shared.WebdavNsNode node)booleangeneratePropValue(org.bedework.webdav.servlet.shared.WebdavNsNode node, org.bedework.webdav.servlet.shared.WebdavProperty pr, boolean allProp)StringgetAcceptContentType(javax.servlet.http.HttpServletRequest req)booleangetAccessControl()org.bedework.webdav.servlet.common.AccessUtilgetAccessUtil()Collection<String>getAclPrincipalInfo(org.bedework.webdav.servlet.shared.WebdavNsNode node)StringgetAddMemberSuffix()org.bedework.webdav.servlet.shared.WebdavNsIntf.ContentgetBinaryContent(org.bedework.webdav.servlet.shared.WebdavNsNode node)CarddavNodegetBwnode(org.bedework.webdav.servlet.shared.WebdavNsNode node)CarddavColNodegetCalnode(org.bedework.webdav.servlet.shared.WebdavNsNode node, int errstatus)Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>getChildren(org.bedework.webdav.servlet.shared.WebdavNsNode node, Supplier<Object> filterGetter)protected CardDAVContextConfiggetConfig()org.bedework.webdav.servlet.shared.WebdavNsIntf.ContentgetContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, String contentType, org.bedework.webdav.servlet.shared.WebdavNsNode node)StringgetDavHeader(org.bedework.webdav.servlet.shared.WebdavNsNode node)booleangetDirectoryBrowsingDisallowed()Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>getGroups(String resourceUri, String principalUrl)org.bedework.webdav.servlet.shared.WebdavNsNodegetNode(String uri, int existance, int nodeType, boolean addMember)org.bedework.webdav.servlet.shared.WebdavNsNodegetParent(org.bedework.webdav.servlet.shared.WebdavNsNode node)Collection<String>getPrincipalCollectionSet(String resourceUri)Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>getPrincipals(String resourceUri, org.bedework.webdav.servlet.shared.PrincipalPropertySearch pps)StringgetSupportedLocks()org.bedework.webdav.servlet.shared.WdSynchReportgetSynchReport(String path, String token, int limit, boolean recurse)StringgetSyncToken(String path)SysIntfgetSysi()org.bedework.webdav.servlet.shared.WdSysIntfgetSysIntf()StringgetVcardVersion(String requested)voidinit(org.bedework.webdav.servlet.common.WebdavServlet servlet, javax.servlet.http.HttpServletRequest req, HashMap<String,org.bedework.webdav.servlet.common.MethodBase.MethodInfo> methods, boolean dumpContent)Called before any other method is called to allow initialisation to take place at the first or subsequent requestsbooleanknownProperty(org.bedework.webdav.servlet.shared.WebdavNsNode node, org.bedework.webdav.servlet.shared.WebdavProperty pr)voidmakeCollection(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode node)Create an empty collection at the given location.org.bedework.webdav.servlet.shared.WebdavPropertymakeProp(Element propnode)Override this to create namespace specific property objects.StringmakeUserHref(String id)org.bedework.webdav.servlet.shared.WebdavNsIntf.PutContentResultputBinaryContent(javax.servlet.http.HttpServletRequest req, org.bedework.webdav.servlet.shared.WebdavNsNode node, String[] contentTypePars, InputStream contentStream, org.bedework.webdav.servlet.common.Headers.IfHeaders ifHeaders)org.bedework.webdav.servlet.shared.WebdavNsIntf.PutContentResultputContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode node, String[] contentTypePars, Reader contentRdr, org.bedework.webdav.servlet.common.Headers.IfHeaders ifHeaders)voidputNode(org.bedework.webdav.servlet.shared.WebdavNsNode node)CarddavBWIntf.QueryResultquery(org.bedework.webdav.servlet.shared.WebdavNsNode wdnode, Filter fltr, GetLimits limits, String vcardVersion)Use the given query to return a collection of nodes.voidreAuth(javax.servlet.http.HttpServletRequest req, String account)See if we can reauthenticate.voidrollback()booleanspecialUri(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, String resourceUri)voidupdateAccess(org.bedework.webdav.servlet.shared.WebdavNsIntf.AclInfo info)-
Methods inherited from class org.bedework.webdav.servlet.shared.WebdavNsIntf
addStatus, closePropstat, closePropstat, emitError, emitSupportedReportSet, fixPath, generateHtml, getAccount, getAnonymous, getChildren, getElementContent, getLocation, getLogger, getMethod, getMethodNames, getOnlyChild, getReader, getRequest, getResourceUri, getReturnMultistatusOk, getServerInfo, getServlet, getUri, getXmlEmit, makeName, makeServerInfoUrl, normalizeUri, openPropstat, parseProp, prefetch, putContent, streamContent, syncTokenMatch, writeContent
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.bedework.util.logging.Logged
audit, debug, debug, enableAuditLogger, enableErrorLogger, enableMetricsLogger, error, error, error, getLogLevel, info, isAuditLoggerEnabled, isErrorLoggerEnabled, isMetricsDebugEnabled, isMetricsLoggerEnabled, metrics, setLoggerClass, setLoggerClass, setLogLevel, trace, trace, warn
-
-
-
-
Method Detail
-
init
public void init(org.bedework.webdav.servlet.common.WebdavServlet servlet, javax.servlet.http.HttpServletRequest req, HashMap<String,org.bedework.webdav.servlet.common.MethodBase.MethodInfo> methods, boolean dumpContent) throws org.bedework.webdav.servlet.shared.WebdavExceptionCalled before any other method is called to allow initialisation to take place at the first or subsequent requests- Overrides:
initin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Parameters:
servlet-req-methods- HashMap table of method infodumpContent-- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
reAuth
public void reAuth(javax.servlet.http.HttpServletRequest req, String account) throws org.bedework.webdav.servlet.shared.WebdavExceptionSee if we can reauthenticate. Use for real-time service which needs to authenticate as a particular principal.- Parameters:
req-account-- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getAddMemberSuffix
public String getAddMemberSuffix() throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getAddMemberSuffixin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getDavHeader
public String getDavHeader(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException
- Overrides:
getDavHeaderin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getConfig
protected CardDAVContextConfig getConfig()
-
getAccessUtil
public org.bedework.webdav.servlet.common.AccessUtil getAccessUtil()
- Specified by:
getAccessUtilin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
canPut
public boolean canPut(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
canPutin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getDirectoryBrowsingDisallowed
public boolean getDirectoryBrowsingDisallowed() throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
getDirectoryBrowsingDisallowedin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
rollback
public void rollback()
- Specified by:
rollbackin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
close
public void close() throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
closein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getSysIntf
public org.bedework.webdav.servlet.shared.WdSysIntf getSysIntf()
- Specified by:
getSysIntfin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
getSysi
public SysIntf getSysi()
- Returns:
- SysIntf
-
getSupportedLocks
public String getSupportedLocks()
- Specified by:
getSupportedLocksin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
getAccessControl
public boolean getAccessControl()
- Specified by:
getAccessControlin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
addNamespace
public void addNamespace(org.bedework.util.xml.XmlEmit xml) throws org.bedework.webdav.servlet.shared.WebdavException- Overrides:
addNamespacein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getNode
public org.bedework.webdav.servlet.shared.WebdavNsNode getNode(String uri, int existance, int nodeType, boolean addMember) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getNodein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
putNode
public void putNode(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
putNodein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
delete
public void delete(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
deletein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getChildren
public Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> getChildren(org.bedework.webdav.servlet.shared.WebdavNsNode node, Supplier<Object> filterGetter) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getChildrenin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getParent
public org.bedework.webdav.servlet.shared.WebdavNsNode getParent(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
getParentin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getContent
public org.bedework.webdav.servlet.shared.WebdavNsIntf.Content getContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, String contentType, org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
getContentin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getBinaryContent
public org.bedework.webdav.servlet.shared.WebdavNsIntf.Content getBinaryContent(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
getBinaryContentin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getAcceptContentType
public String getAcceptContentType(javax.servlet.http.HttpServletRequest req)
- Specified by:
getAcceptContentTypein classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
putContent
public org.bedework.webdav.servlet.shared.WebdavNsIntf.PutContentResult putContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode node, String[] contentTypePars, Reader contentRdr, org.bedework.webdav.servlet.common.Headers.IfHeaders ifHeaders) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
putContentin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
putBinaryContent
public org.bedework.webdav.servlet.shared.WebdavNsIntf.PutContentResult putBinaryContent(javax.servlet.http.HttpServletRequest req, org.bedework.webdav.servlet.shared.WebdavNsNode node, String[] contentTypePars, InputStream contentStream, org.bedework.webdav.servlet.common.Headers.IfHeaders ifHeaders) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
putBinaryContentin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
create
public void create(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
createin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
createAlias
public void createAlias(org.bedework.webdav.servlet.shared.WebdavNsNode alias) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
createAliasin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
acceptMkcolContent
public void acceptMkcolContent(javax.servlet.http.HttpServletRequest req) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
acceptMkcolContentin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
makeCollection
public void makeCollection(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavExceptionCreate an empty collection at the given location.201 (Created) - The calendar collection resource was created in its entirety. 403 (Forbidden) - This indicates at least one of two conditions: 1) the server does not allow the creation of calendar collections at the given location in its namespace, or 2) the parent collection of the Request-URI exists but cannot accept members. 405 (Method Not Allowed) - MKCALENDAR can only be executed on a null resource. 409 (Conflict) - A collection cannot be made at the Request-URI until one or more intermediate collections have been created. 415 (Unsupported Media Type)- The server does not support the request type of the body. 507 (Insufficient Storage) - The resource does not have sufficient space to record the state of the resource after the execution of this method.- Specified by:
makeCollectionin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Parameters:
req- HttpServletRequestnode- node to create- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
copyMove
public void copyMove(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode from, org.bedework.webdav.servlet.shared.WebdavNsNode to, boolean copy, boolean overwrite, int depth) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
copyMovein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
specialUri
public boolean specialUri(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, String resourceUri) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
specialUriin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getSynchReport
public org.bedework.webdav.servlet.shared.WdSynchReport getSynchReport(String path, String token, int limit, boolean recurse) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getSynchReportin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getSyncToken
public String getSyncToken(String path) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getSyncTokenin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getGroups
public Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> getGroups(String resourceUri, String principalUrl) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getGroupsin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getPrincipalCollectionSet
public Collection<String> getPrincipalCollectionSet(String resourceUri) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getPrincipalCollectionSetin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getPrincipals
public Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> getPrincipals(String resourceUri, org.bedework.webdav.servlet.shared.PrincipalPropertySearch pps) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getPrincipalsin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
makeUserHref
public String makeUserHref(String id) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
makeUserHrefin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
updateAccess
public void updateAccess(org.bedework.webdav.servlet.shared.WebdavNsIntf.AclInfo info) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
updateAccessin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
emitAcl
public void emitAcl(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException- Specified by:
emitAclin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getAclPrincipalInfo
public Collection<String> getAclPrincipalInfo(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException
- Specified by:
getAclPrincipalInfoin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
makeProp
public org.bedework.webdav.servlet.shared.WebdavProperty makeProp(Element propnode) throws org.bedework.webdav.servlet.shared.WebdavException
Override this to create namespace specific property objects.- Overrides:
makePropin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Parameters:
propnode-- Returns:
- WebdavProperty
- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
knownProperty
public boolean knownProperty(org.bedework.webdav.servlet.shared.WebdavNsNode node, org.bedework.webdav.servlet.shared.WebdavProperty pr)- Overrides:
knownPropertyin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
generatePropValue
public boolean generatePropValue(org.bedework.webdav.servlet.shared.WebdavNsNode node, org.bedework.webdav.servlet.shared.WebdavProperty pr, boolean allProp) throws org.bedework.webdav.servlet.shared.WebdavException- Overrides:
generatePropValuein classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
query
public CarddavBWIntf.QueryResult query(org.bedework.webdav.servlet.shared.WebdavNsNode wdnode, Filter fltr, GetLimits limits, String vcardVersion) throws org.bedework.webdav.servlet.shared.WebdavException
Use the given query to return a collection of nodes. An exception will be raised if the entire query fails for some reason (access, etc). An empty collection will be returned if no objects match.- Parameters:
wdnode- WebdavNsNode defining root of searchfltr- Filter object defining searchlimits- to limit result sizevcardVersion-- Returns:
- Collection of result nodes (empty for no result)
- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getBwnode
public CarddavNode getBwnode(org.bedework.webdav.servlet.shared.WebdavNsNode node) throws org.bedework.webdav.servlet.shared.WebdavException
- Parameters:
node-- Returns:
- CaldavBwNode
- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getCalnode
public CarddavColNode getCalnode(org.bedework.webdav.servlet.shared.WebdavNsNode node, int errstatus) throws org.bedework.webdav.servlet.shared.WebdavException
- Parameters:
node-errstatus-- Returns:
- CaldavCalNode
- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
-