Package org.bedework.caldav.server
Class CaldavBWIntf
java.lang.Object
org.bedework.webdav.servlet.shared.WebdavNsIntf
org.bedework.caldav.server.CaldavBWIntf
- All Implemented Interfaces:
Serializable,org.bedework.util.logging.Logged
public class CaldavBWIntf
extends org.bedework.webdav.servlet.shared.WebdavNsIntf
This 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:
-
Nested Class Summary
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 -
Field Summary
Fields inherited from class org.bedework.webdav.servlet.shared.WebdavNsIntf
account, anonymous, dumpContent, existanceDoesExist, existanceMay, existanceMust, existanceNot, methods, nodeTypeCollection, nodeTypeEntity, nodeTypePrincipal, nodeTypeUnknown, servlet, session, sessNum, xml -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidacceptMkcolContent(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) voidbooleangeneratePropValue(org.bedework.webdav.servlet.shared.WebdavNsNode node, org.bedework.webdav.servlet.shared.WebdavProperty pr, boolean allProp) getAcceptContentType(javax.servlet.http.HttpServletRequest req) booleanorg.bedework.webdav.servlet.common.AccessUtilgetAclPrincipalInfo(org.bedework.webdav.servlet.shared.WebdavNsNode node) org.bedework.webdav.servlet.shared.WebdavNsIntf.ContentgetBinaryContent(org.bedework.webdav.servlet.shared.WebdavNsNode node) booleangetCalWS()voidgetCalWSProperties(CaldavBwNode node, List<org.oasis_open.docs.ws_calendar.ns.soap.GetPropertiesBasePropertyType> props) Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>getChildren(org.bedework.webdav.servlet.shared.WebdavNsNode node, Supplier<Object> filterGetter) 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) getDavHeader(org.bedework.webdav.servlet.shared.WebdavNsNode node) booleanvoidgetFreeBusy(CaldavCalNode cnode, FreeBusyQuery freeBusy, int depth) The node represents a calendar resource for which we must get free-busy information.Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>static org.bedework.util.jmx.ManagementContextorg.bedework.webdav.servlet.shared.WebdavNsNodebooleanGet the notify web service flagorg.bedework.webdav.servlet.shared.WebdavNsNodegetParent(org.bedework.webdav.servlet.shared.WebdavNsNode node) getPrincipalCollectionSet(String resourceUri) Collection<org.bedework.webdav.servlet.shared.WebdavPrincipalNode>getPrincipals(String resourceUri, org.bedework.webdav.servlet.shared.PrincipalPropertySearch pps) org.bedework.webdav.servlet.shared.serverInfo.ServerInfoorg.bedework.webdav.servlet.shared.WdSynchReportgetSynchReport(String path, String token, int limit, boolean recurse) booleanGet the synch web service flaggetSyncToken(String path) getSysi()org.bedework.webdav.servlet.shared.WdSysIntforg.oasis_open.docs.ns.xri.xrd_1.XRDTypegetXRD(CaldavBwNode node) 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 initialization 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.WebdavPropertyOverride this to create namespace specific property objects.makeUserHref(String id) booleanprefetch(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, org.bedework.webdav.servlet.shared.WebdavNsNode node) 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) booleanputEvent(javax.servlet.http.HttpServletResponse resp, CaldavComponentNode bwnode, IcalendarType ical, boolean create, boolean noInvites, String ifStag, String ifEtag) voidputNode(org.bedework.webdav.servlet.shared.WebdavNsNode node) Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>query(org.bedework.webdav.servlet.shared.WebdavNsNode wdnode, List<String> retrieveList, RetrievalMode retrieveRecur, FilterType fltr) Use the given query to return a collection of nodes.voidreAuth(javax.servlet.http.HttpServletRequest req, String account, boolean service, String opaqueData) See if we can reauthenticate.static voidregisterMbean(ObjectName key, Object bean) voidrollback()booleanspecialUri(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, String resourceUri) static voidunregister(ObjectName key) voidupdateAccess(org.bedework.webdav.servlet.shared.WebdavNsIntf.AclInfo info) voidupdateAccess(org.bedework.webdav.servlet.shared.WebdavNsIntf.AclInfo info, CaldavBwNode node) Methods inherited from class org.bedework.webdav.servlet.shared.WebdavNsIntf
addStatus, closePropstat, closePropstat, emitSupportedReportSet, fixPath, generateHtml, getAccount, getAnonymous, getChildren, getElementContent, getLocation, getLogger, getMethod, getMethodNames, getOnlyChild, getReader, getRequest, getResourceUri, getReturnMultistatusOk, getServlet, getUri, getXmlEmit, makeName, makeServerInfoUrl, normalizeUri, openPropstat, parseProp, putContent, streamContent, syncTokenMatch, writeContentMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.bedework.util.logging.Logged
audit, debug, debug, debug, enableAuditLogger, enableErrorLogger, enableMetricsLogger, error, error, error, getLogLevel, info, isAuditLoggerEnabled, isErrorLoggerEnabled, isMetricsDebugEnabled, isMetricsLoggerEnabled, metrics, setLoggerClass, setLoggerClass, trace, trace, trace, warn
-
Constructor Details
-
CaldavBWIntf
public CaldavBWIntf()
-
-
Method Details
-
registerMbean
-
unregister
- Parameters:
key- bean objectname
-
getManagementContext
public static org.bedework.util.jmx.ManagementContext getManagementContext()- Returns:
- the management context.
-
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 initialization to take place at the first or subsequent requests- Overrides:
initin classorg.bedework.webdav.servlet.shared.WebdavNsIntf- Parameters:
servlet- calling servletreq- http requestmethods- HashMap table of method infodumpContent- true if we dump content- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getActiveConnections
- Throws:
Throwable
-
reAuth
public void reAuth(javax.servlet.http.HttpServletRequest req, String account, boolean service, String opaqueData) throws org.bedework.webdav.servlet.shared.WebdavException See if we can reauthenticate. Use for real-time service which needs to authenticate as a particular principal.- Parameters:
req- http requestaccount- to reinit asservice- - true if this is a service call - e.g. iSchedule - rather than a real user.opaqueData- - possibly from headers- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getCalWS
public boolean getCalWS()- Returns:
- boolean
-
getSynchWs
public boolean getSynchWs()Get the synch web service flag- Returns:
- true if it's a synch service
-
getNotifyWs
public boolean getNotifyWs()Get the notify web service flag- Returns:
- true if it's a notify service
-
getServerInfo
public org.bedework.webdav.servlet.shared.serverInfo.ServerInfo getServerInfo()- Overrides:
getServerInfoin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
emitError
- Overrides:
emitErrorin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
getAccessUtil
public org.bedework.webdav.servlet.common.AccessUtil getAccessUtil()- Specified by:
getAccessUtilin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
getAddMemberSuffix
- Specified by:
getAddMemberSuffixin classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
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
- Returns:
- SysIntf
-
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) - Overrides:
addNamespacein classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
getNode
public org.bedework.webdav.servlet.shared.WebdavNsNode getNode(String uri, int existence, 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
-
getAcceptContentType
- Specified by:
getAcceptContentTypein classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
putEvent
public boolean putEvent(javax.servlet.http.HttpServletResponse resp, CaldavComponentNode bwnode, IcalendarType ical, boolean create, boolean noInvites, String ifStag, String ifEtag) throws org.bedework.webdav.servlet.shared.WebdavException - Parameters:
resp- http responsebwnode- component nodeical- ical objectcreate- true for createnoInvites- true for send no invitesifStag- schedule tagifEtag- etag- Returns:
- true for OK
- 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
-
getCalWSProperties
public void getCalWSProperties(CaldavBwNode node, List<org.oasis_open.docs.ws_calendar.ns.soap.GetPropertiesBasePropertyType> props) throws org.bedework.webdav.servlet.shared.WebdavException - Parameters:
node-props-- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-
getXRD
public org.oasis_open.docs.ns.xri.xrd_1.XRDType getXRD(CaldavBwNode node) throws org.bedework.webdav.servlet.shared.WebdavException - Parameters:
node-- Returns:
- the XRD object for the node
- 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
- 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
-
makeUserHref
- Specified by:
makeUserHrefin 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
-
getFreeBusy
public void getFreeBusy(CaldavCalNode cnode, FreeBusyQuery freeBusy, int depth) throws org.bedework.webdav.servlet.shared.WebdavException The node represents a calendar resource for which we must get free-busy information.- Parameters:
cnode- CaldavCalNodefreeBusy-depth-- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-