WebDAV Current Principal Extension
Extracted elements (10)
The existing DAV:principal-match REPORT produces ambiguous results because it returns both the individual user principal and every group principal the user belongs to, with no clear way to distinguish them. DAV:current-user-principal was introduced to unambiguously identify the principal resource for the current user.
The specification intentionally restricts DAV:current-user-principal to a single http(s) URL rather than providing a complete list of alternate URLs. The purpose is only to provide a bootstrap entry point; clients can then query that principal resource to discover additional URLs.
The DAV:current-user-principal property extends WebDAV ACL [RFC3744] and depends on the principal model defined there; clients must support WebDAV ACL to make meaningful use of the returned principal resource URL.
Processing of XML by clients and servers MUST follow the rules defined in Section 17 of WebDAV [RFC4918].
Servers SHOULD be consistent and use the same principal resource URI for each authenticated principal, even though the server is free to choose any one when multiple principal resources correspond to the same authenticated principal.
The URL in DAV:current-user-principal MUST be one of the URLs in the DAV:principal-URL or DAV:alternate-URI-set properties defined on the principal resource, and MUST be an http(s) scheme URL.
When authentication has not been done or has failed, the DAV:current-user-principal property MUST contain the DAV:unauthenticated pseudo-principal.
DAV:current-user-principal is a new WebDAV property that returns a URL to the principal resource corresponding to the currently authenticated user. Its value is either a DAV:href element containing an http(s) URL or a DAV:unauthenticated element when the user is not authenticated. The property is protected and computed on a per-request basis, so it is never copied or moved.
This specification does not introduce any additional security issues beyond those already defined for HTTP [RFC2616], WebDAV [RFC4918], and WebDAV ACL [RFC3744].
The DAV:current-user-principal element is defined as `<!ELEMENT current-user-principal (unauthenticated | href)>`, containing either a DAV:unauthenticated element or a DAV:href element whose value is a URL to a principal resource.