WebDAV – IETF 56. Agenda Interim WG meeting and Interop Testing - Jim RFC2518bis: Lisa Dusseault...
-
Upload
gladys-simmons -
Category
Documents
-
view
215 -
download
0
Transcript of WebDAV – IETF 56. Agenda Interim WG meeting and Interop Testing - Jim RFC2518bis: Lisa Dusseault...
WebDAV – IETF 56WebDAV – IETF 56
AgendaAgenda
Interim WG meeting and Interop Testing - JimInterim WG meeting and Interop Testing - Jim
RFC2518bis: Lisa DusseaultRFC2518bis: Lisa Dusseault– GULP = Grand Unified Lock ProposalGULP = Grand Unified Lock Proposal– Other issuesOther issues
Quota: Brian KorverQuota: Brian Korver
Bindings: Geoff ClemmBindings: Geoff Clemm
Ordered Collections: Geoff ClemmOrdered Collections: Geoff Clemm
ACL: Geoff ClemmACL: Geoff Clemm
DASL: volunteer??DASL: volunteer??
Interop/Interim resultsInterop/Interim results
Held face-to-face interoperability testing event in Held face-to-face interoperability testing event in Sept, 2002Sept, 2002– 37 people attended, tested 13 clients, 16 servers37 people attended, tested 13 clients, 16 servers– much improvement in interoperabilitymuch improvement in interoperability
Progress underway to develop improved Progress underway to develop improved compliance test suitecompliance test suite– Improved version of LitmusImproved version of Litmus– "Harry" a database-driven compliance tester"Harry" a database-driven compliance tester– Both currently held up by Adobe IP release processBoth currently held up by Adobe IP release process– Work underway to address thisWork underway to address this
Continuous online interoperability testingContinuous online interoperability testing
GULPGULP
Do UNLOCK requests to an indirectly Do UNLOCK requests to an indirectly locked resource work?locked resource work?– Or does the client have to address lockroot?Or does the client have to address lockroot?
Change/clarify what “submitted” means Change/clarify what “submitted” means – W.r.t. lock tokens submitted in the If headerW.r.t. lock tokens submitted in the If header
Keep in mind goals of RFC2518bis and Keep in mind goals of RFC2518bis and GULPGULP– Clarify without changing specClarify without changing spec– Improve interoperabilityImprove interoperability
Agreed text so farAgreed text so far
A lock either directly or indirectly locks a A lock either directly or indirectly locks a resource.resource.
A LOCK request creates a new lock, and the A LOCK request creates a new lock, and the resource identified by the request-URL is directly resource identified by the request-URL is directly locked by that lock. The "lock-root" of the new locked by that lock. The "lock-root" of the new lock is the request-URL. If at the time of the lock is the request-URL. If at the time of the request, the request-URL is not mapped to a request, the request-URL is not mapped to a resource, a new resource with no content MUST resource, a new resource with no content MUST be created by the request.be created by the request.
Agreed text continuedAgreed text continued
If a collection is directly locked by a depth:infinity lock, all If a collection is directly locked by a depth:infinity lock, all members of that collection (other than the collection members of that collection (other than the collection itself) are indirectly locked by that lock. In particular, if a itself) are indirectly locked by that lock. In particular, if a internal member is added to a collection that is locked by internal member is added to a collection that is locked by a depth:infinity lock, and if the resource is not locked by a depth:infinity lock, and if the resource is not locked by that lock, then the resource becomes indirectly locked by that lock, then the resource becomes indirectly locked by that lock. Conversely, if a resource is indirectly locked that lock. Conversely, if a resource is indirectly locked with a depth:infinity lock, and if the result of removing an with a depth:infinity lock, and if the result of removing an internal member URL identifying that resource is that the internal member URL identifying that resource is that the resource is no longer a member of the collection that is resource is no longer a member of the collection that is directly locked by that lock, then the resource is no directly locked by that lock, then the resource is no longer locked by that lock.longer locked by that lock.
First problemFirst problem
““An UNLOCK request deletes the lock with An UNLOCK request deletes the lock with the specified lock token. The request-URL the specified lock token. The request-URL of the request MUST identify a resource of the request MUST identify a resource that is either directly that is either directly or indirectly or indirectly locked by locked by that lock. After a lock is deleted, no that lock. After a lock is deleted, no resource is locked by that lock.”resource is locked by that lock.”
Confirm indirect?Confirm indirect?
Second problem: “submitted”Second problem: “submitted”
““A lock token is "submitted" in a request A lock token is "submitted" in a request when it appears in an If header.“when it appears in an If header.“
Julian asked for this to say that the token Julian asked for this to say that the token must be tagged with the lockroot URLmust be tagged with the lockroot URL– That is inconsistent with RFC2518 untagged That is inconsistent with RFC2518 untagged
syntaxsyntax– Breaks clientsBreaks clients– Harder to get rightHarder to get right
What is lockedWhat is locked
The following operations must fail unless the The following operations must fail unless the lock-token for the lock is submitted in the lock-token for the lock is submitted in the request: request: 1. modify the content for a locked resource1. modify the content for a locked resource2. modify a dead property of a locked resource, 2. modify a dead property of a locked resource, 3. modify a 3. modify a lockable lockable live property be for a locked live property be for a locked resourceresource4. modify an internal member URL in a locked 4. modify an internal member URL in a locked collection,collection,5. modify any content, properties or URLs of any 5. modify any content, properties or URLs of any descendent of a depth-infinity locked collection.descendent of a depth-infinity locked collection.
Last pieceLast piece
If a request causes a directly locked If a request causes a directly locked resource to no longer be mapped to the resource to no longer be mapped to the lock-root of that lock, then the request lock-root of that lock, then the request MUST fail unless the lock-token for that MUST fail unless the lock-token for that lock is submitted in the request. If the lock is submitted in the request. If the request succeeds, then that lock MUST request succeeds, then that lock MUST have been deleted by that request. If a have been deleted by that request. If a request would cause a resource to be request would cause a resource to be locked by two different exclusive locks, the locked by two different exclusive locks, the request MUST fail.request MUST fail.
Allprop replacement proposalAllprop replacement proposal
<propfind xmlns=“DAV:”><propfind xmlns=“DAV:”>
<prop><prop>
<resourcetype/><resourcetype/>
<getlastmodified/><getlastmodified/>
<quota xmlns=“http://www.xythos.com/ns/”/><quota xmlns=“http://www.xythos.com/ns/”/>
</prop></prop>
<dead-props/><dead-props/>
</propfind></propfind>
207 Replacement207 Replacement
Proposal AProposal A– Define “partial success” responseDefine “partial success” response– New 400-level error codeNew 400-level error code– Multi-status bodyMulti-status body
Proposal BProposal B– Do nothingDo nothing– Not an interoperability problemNot an interoperability problem
Are ETags requiredAre ETags required
Current consensus Current consensus appearsappears to be to be– Servers SHOULD implementServers SHOULD implement– Standard will explain why this is a really good Standard will explain why this is a really good
ideaidea
Response bodies with extensible Response bodies with extensible error codeserror codes
Some text in latest version of rfc2518bisSome text in latest version of rfc2518bis
To do a complete job, need to define more To do a complete job, need to define more codes and exactly what they meancodes and exactly what they mean
Guidance from WG?Guidance from WG?
Small changesSmall changes
Changed domains to “example.com” or Changed domains to “example.com” or “example.org”“example.org”
Clarification how live property copy works Clarification how live property copy works differently than live property movedifferently than live property move
More If header parsing/handling clarityMore If header parsing/handling clarity
Require servers supporting ‘bis’ to handle Require servers supporting ‘bis’ to handle commas in If headercommas in If header