Package org.exoplatform.caldav.client
package org.exoplatform.caldav.client
-
ClassDescriptionThe server refused the credentials.The CalDAV protocol, and nothing else: it fetches, it does not decide.Where a CalDAV conversation is allowed to go: the scheme and authority of one administrator-declared server, plus the account's base collection path on it.The one failure the CalDAV client throws for protocol and transport trouble: the server unreachable, an answer outside the accepted statuses of the verb, a body that is not DAV XML, or a target this client refuses to address.One calendar collection as a PROPFIND listed it: everything the sync engine binds a pair on, and nothing it does not need.One calendar object (an .ics resource) as the server answered it.CalDAV over the JDK's own HTTP client, modelled line for line on email-connector's
HttpCardDavClient— the hand-written client that already works against the same BlueMind that defeated the browser — with the disciplines the relay established carried over: registry-only targets — endpoints are minted from the server registry alone (HttpCalDavClient.endpoint(Long, String)), hrefs resolve against that endpoint's authority, and a foreign-host href is refused; no redirects — a declared server must not be able to bounce this client's credentialed requests to another host, so the transport never follows a 3xx (which also rules the well-known discovery flow out by design: discovery starts at the registered base path instead); explicit timeouts and a bounded body read, both deployment-tunable; no auth material anywhere near a log or an exception — every message names the method and the URI, never a header. The XML is parsed with doctypes and external entities disabled: the payload comes from whatever server an administrator declared, which is still attacker-influenced input, and a stock parser would happily read files off this machine on its behalf.What an MKCALENDAR answered — deliberately never a boolean "created".What a conditional PUT answered.Which incremental-sync tier a collection's server can serve, read from one Depth:0 PROPFIND (supported-report-set, ctag, sync token) plus theDAVresponse header.The incremental strategies of the plan, cheapest first.What an RFC 6578 sync-collection REPORT answered: the hrefs that changed, the hrefs that are gone, and the token to store for the next run.