Package org.bedework.caldav.server
Class CaldavBWIntf
java.lang.Object
org.bedework.webdav.servlet.shared.WebdavNsIntf
org.bedework.caldav.server.CaldavBWIntf
- All Implemented Interfaces:
java.io.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:
- Serialized Form
-
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 Constructor Description CaldavBWIntf() -
Method Summary
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)voidemitError(javax.xml.namespace.QName errorTag, java.lang.String extra, org.bedework.util.xml.XmlEmit xml)booleangeneratePropValue(org.bedework.webdav.servlet.shared.WebdavNsNode node, org.bedework.webdav.servlet.shared.WebdavProperty pr, boolean allProp)java.lang.StringgetAcceptContentType(javax.servlet.http.HttpServletRequest req)booleangetAccessControl()org.bedework.webdav.servlet.common.AccessUtilgetAccessUtil()java.util.Collection<java.lang.String>getAclPrincipalInfo(org.bedework.webdav.servlet.shared.WebdavNsNode node)SynchConnectionsMBeangetActiveConnections()java.lang.StringgetAddMemberSuffix()org.bedework.webdav.servlet.shared.WebdavNsIntf.ContentgetBinaryContent(org.bedework.webdav.servlet.shared.WebdavNsNode node)booleangetCalWS()voidgetCalWSProperties(CaldavBwNode node, java.util.List<org.oasis_open.docs.ws_calendar.ns.soap.GetPropertiesBasePropertyType> props)java.util.Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>getChildren(org.bedework.webdav.servlet.shared.WebdavNsNode node, java.util.function.Supplier<java.lang.Object> filterGetter)org.bedework.webdav.servlet.shared.WebdavNsIntf.ContentgetContent(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, java.lang.String contentType, org.bedework.webdav.servlet.shared.WebdavNsNode node)java.lang.StringgetDavHeader(org.bedework.webdav.servlet.shared.WebdavNsNode node)booleangetDirectoryBrowsingDisallowed()voidgetFreeBusy(CaldavCalNode cnode, FreeBusyQuery freeBusy, int depth)The node represents a calendar resource for which we must get free-busy information.java.util.Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>getGroups(java.lang.String resourceUri, java.lang.String principalUrl)static org.bedework.util.jmx.ManagementContextgetManagementContext()org.bedework.webdav.servlet.shared.WebdavNsNodegetNode(java.lang.String uri, int existence, int nodeType, boolean addMember)booleangetNotifyWs()Get the notify web service flagorg.bedework.webdav.servlet.shared.WebdavNsNodegetParent(org.bedework.webdav.servlet.shared.WebdavNsNode node)java.util.Collection<java.lang.String>getPrincipalCollectionSet(java.lang.String resourceUri)java.util.Collection<org.bedework.webdav.servlet.shared.WebdavPrincipalNode>getPrincipals(java.lang.String resourceUri, org.bedework.webdav.servlet.shared.PrincipalPropertySearch pps)org.bedework.webdav.servlet.shared.serverInfo.ServerInfogetServerInfo()java.lang.StringgetSupportedLocks()org.bedework.webdav.servlet.shared.WdSynchReportgetSynchReport(java.lang.String path, java.lang.String token, int limit, boolean recurse)booleangetSynchWs()Get the synch web service flagjava.lang.StringgetSyncToken(java.lang.String path)SysIntfgetSysi()org.bedework.webdav.servlet.shared.WdSysIntfgetSysIntf()org.oasis_open.docs.ns.xri.xrd_1.XRDTypegetXRD(CaldavBwNode node)voidinit(org.bedework.webdav.servlet.common.WebdavServlet servlet, javax.servlet.http.HttpServletRequest req, java.util.HashMap<java.lang.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.WebdavPropertymakeProp(org.w3c.dom.Element propnode)Override this to create namespace specific property objects.java.lang.StringmakeUserHref(java.lang.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, java.lang.String[] contentTypePars, java.io.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, java.lang.String[] contentTypePars, java.io.Reader contentRdr, org.bedework.webdav.servlet.common.Headers.IfHeaders ifHeaders)booleanputEvent(javax.servlet.http.HttpServletResponse resp, CaldavComponentNode bwnode, ietf.params.xml.ns.icalendar_2.IcalendarType ical, boolean create, boolean noInvites, java.lang.String ifStag, java.lang.String ifEtag)voidputNode(org.bedework.webdav.servlet.shared.WebdavNsNode node)java.util.Collection<org.bedework.webdav.servlet.shared.WebdavNsNode>query(org.bedework.webdav.servlet.shared.WebdavNsNode wdnode, java.util.List<java.lang.String> retrieveList, RetrievalMode retrieveRecur, ietf.params.xml.ns.caldav.FilterType fltr)Use the given query to return a collection of nodes.voidreAuth(javax.servlet.http.HttpServletRequest req, java.lang.String account, boolean service, java.lang.String opaqueData)See if we can reauthenticate.static voidregisterMbean(javax.management.ObjectName key, java.lang.Object bean)voidrollback()booleanspecialUri(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, java.lang.String resourceUri)static voidunregister(javax.management.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, enableAuditLogger, enableErrorLogger, enableMetricsLogger, error, error, error, getLogLevel, info, isAuditLoggerEnabled, isErrorLoggerEnabled, isMetricsDebugEnabled, isMetricsLoggerEnabled, metrics, setLoggerClass, setLoggerClass, trace, trace, warn
-
Constructor Details
-
CaldavBWIntf
public CaldavBWIntf()
-
-
Method Details
-
registerMbean
public static void registerMbean(javax.management.ObjectName key, java.lang.Object bean) -
unregister
public static void unregister(javax.management.ObjectName key)- 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, java.util.HashMap<java.lang.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:
java.lang.Throwable
-
reAuth
public void reAuth(javax.servlet.http.HttpServletRequest req, java.lang.String account, boolean service, java.lang.String opaqueData) 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- 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
public void emitError(javax.xml.namespace.QName errorTag, java.lang.String extra, org.bedework.util.xml.XmlEmit xml)- 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
public java.lang.String 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
public java.lang.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)- Overrides:
addNamespacein classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
getNode
public org.bedework.webdav.servlet.shared.WebdavNsNode getNode(java.lang.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
public java.lang.String getAcceptContentType(javax.servlet.http.HttpServletRequest req)- Specified by:
getAcceptContentTypein classorg.bedework.webdav.servlet.shared.WebdavNsIntf
-
putEvent
public boolean putEvent(javax.servlet.http.HttpServletResponse resp, CaldavComponentNode bwnode, ietf.params.xml.ns.icalendar_2.IcalendarType ical, boolean create, boolean noInvites, java.lang.String ifStag, java.lang.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, java.util.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, java.lang.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(java.lang.String path, java.lang.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 java.lang.String getSyncToken(java.lang.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 java.util.Collection<org.bedework.webdav.servlet.shared.WebdavNsNode> getGroups(java.lang.String resourceUri, java.lang.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 java.util.Collection<java.lang.String> getPrincipalCollectionSet(java.lang.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
public java.lang.String makeUserHref(java.lang.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
-
makeProp
public org.bedework.webdav.servlet.shared.WebdavProperty makeProp(org.w3c.dom.Element propnode) throws org.bedework.webdav.servlet.shared.WebdavExceptionOverride 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.WebdavExceptionThe node represents a calendar resource for which we must get free-busy information.- Parameters:
cnode- CaldavCalNodefreeBusy-depth-- Throws:
org.bedework.webdav.servlet.shared.WebdavException
-