Test current-user-principal prop authentication workaround
This commit is contained in:
parent
6ec63ccc9b
commit
b9bb017edf
@ -56,7 +56,7 @@ def xml_propfind(base_prefix, path, xml_request, allowed_items, user,
|
||||
if xmlutils.make_clark("D:current-user-principal") in props and not user:
|
||||
# Ask for authentication
|
||||
# Returning the DAV:unauthenticated pseudo-principal as specified in
|
||||
# RFC 5397 doesn't seem to work with DAVdroid.
|
||||
# RFC 5397 doesn't seem to work with DAVx5.
|
||||
return client.FORBIDDEN, None
|
||||
|
||||
# Writing answer
|
||||
@ -372,6 +372,6 @@ class ApplicationPropfindMixin:
|
||||
status, xml_answer = xml_propfind(
|
||||
base_prefix, path, xml_content, allowed_items, user,
|
||||
self._encoding)
|
||||
if status == client.FORBIDDEN:
|
||||
if status == client.FORBIDDEN and xml_answer is None:
|
||||
return httputils.NOT_ALLOWED
|
||||
return status, headers, self._write_xml_content(xml_answer)
|
||||
|
@ -1303,6 +1303,19 @@ class BaseRequestsMixIn:
|
||||
"""Verify existence of the principal collection."""
|
||||
self.propfind("/user/", login="user:")
|
||||
|
||||
def test_authentication_current_user_principal_workaround(self):
|
||||
"""Test if server sends authentication request when accessing
|
||||
current-user-principal prop (workaround for DAVx5)."""
|
||||
status, headers, _ = self.request("PROPFIND", "/", """\
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<propfind xmlns="DAV:">
|
||||
<prop>
|
||||
<current-user-principal />
|
||||
</prop>
|
||||
</propfind>""")
|
||||
assert status in (401, 403)
|
||||
assert headers.get("WWW-Authenticate")
|
||||
|
||||
def test_existence_of_root_collections(self):
|
||||
"""Verify that the root collection always exists."""
|
||||
# Use PROPFIND because GET returns message
|
||||
|
Loading…
Reference in New Issue
Block a user