单击IOS“更新联系人”文本中的姓名和照片会中断基本的只读客户端连接

问题描述

目标:拥有一个只读的基本帐户,并分配给大约500个用户。 服务器在Apache2之后的Debian 10上 有问题的用户在IOS 13或14上

结果:在radicale github中引用JSzaszvari之后,我成功地创建了具有rw特权的管理员帐户和仅具有r特权的用户帐户。联系人列表在管理员用户帐户之间是符号链接的。在用户测试之后,这似乎效果很好。具有该用户帐户的用户可以从其IOS设备连接到部首并查看所有联系人。及时获取更新,重要的是不能编辑或删除联系人。如果他们尝试编辑联系人,它将在其认帐户中创建一个重复的命名联系人,并将他们所做的任何更改都保存在该认联系人中。

问题:到目前为止,我发现无法正常运行的一件事是在iOS上的文本消息上弹出的“更新联系人”链接。当用户单击此链接时,不会创建新的联系人,并且似乎Apple在电话上本地编辑了只读联系人。这将导致向新的只读特权帐户发送新数据的PUT请求失败。这本身不是问题,但是不会发生联系人的后续读取,并且不会使用来自服务器的新联系人信息来更新用户设备。只有在从IOS设置中关闭并重新打开帐户后,此重置才能正常工作。但是,一段时间后,“更新联系人”链接会重新出现在短信中。

尝试过:我曾尝试编辑权限,以允许用户帐户写入虚拟帐户,然后从符号链接文件夹中读取内容,但是我无法激进地表现出自己想要的方式。我还考虑过使用admin帐户添加所有更新的照片,这样用户就不会再出现弹出窗口,但是拥有超过400个联系人,而且人们无法预测更新的时间不是一个长期解决方案。告诉用户不要单击“更新联系人”链接也是一种选择,但是很可能会导致违规。

这是我的基本权利文件

[admin]
user: admin
collection: .*
permission: rw

[writeonly_contacts]
user: write
collection: .*
permission: r

[readonly_contacts]
user: usapct
collection: .*
permission: r

和/var/log/radicale/radicale.log,当我尝试单击“更新联系人”后进行同步时

2020-10-06 19:02:26,970 - INFO: Starting Radicale
2020-10-06 19:02:26,970 - INFO: Authentication type is 'htpasswd'
2020-10-06 19:02:26,985 - DEBUG: registered 'bcrypt' handler: <class 'passlib.handlers.bcrypt.bcrypt'>
2020-10-06 19:02:26,988 - DEBUG: detected 'bcrypt' backend,version '3.1.6'
2020-10-06 19:02:26,988 - DEBUG: 'bcrypt' backend lacks $2$ support,enabling workaround
2020-10-06 19:02:27,318 - INFO: Storage type is 'multifilesystem'
2020-10-06 19:02:27,318 - INFO: Rights type is 'from_file'
2020-10-06 19:02:27,318 - INFO: Web type is 'internal'
2020-10-06 19:02:27,321 - INFO: Listening to 'localhost' on port 5232 using SSL
2020-10-06 19:02:27,328 - INFO: Radicale server ready
2020-10-06 19:02:35,249 - INFO: PUT request for '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' received from ‘ip.address’ (forwarded by 127.0.0.1) using 'iOS/14.0.1 (18A393) dataaccessd/1.0'
2020-10-06 19:02:35,249 - DEBUG: Request headers:
{'CONTENT_LENGTH': '317814','CONTENT_TYPE': 'text/vcard; charset=utf-8','GATEWAY_INTERFACE': 'CGI/1.1','HTTP_ACCEPT': '*/*','HTTP_ACCEPT_ENCODING': 'gzip,deflate,br','HTTP_ACCEPT_LANGUAGE': 'en-us','HTTP_CONNECTION': 'Keep-Alive','HTTP_HOST': ‘contacts.example.com’,'HTTP_IF_MATCH': '"e86f0978da9f6e2ebc0f1f254ef2ffe0"','HTTP_USER_AGENT': 'iOS/14.0.1 (18A393) dataaccessd/1.0','HTTP_X_FORWARDED_FOR': ‘ip.address’,'HTTP_X_FORWARDED_HOST': ‘contacts.example.com’,'HTTP_X_FORWARDED_SERVER': ‘contacts.example.com’,'PATH_INFO': '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf','QUERY_STRING': '','REMOTE_ADDR': '127.0.0.1','REMOTE_CERTIFICATE': None,'REMOTE_HOST': '','REQUEST_METHOD': 'PUT','SCRIPT_NAME': '','SERVER_NAME': 'localhost','SERVER_PORT': '5232','SERVER_PROTOCOL': 'HTTP/1.1','SERVER_SOFTWARE': 'WsgiServer/0.2','wsgi.errors': <_io.StringIO object at 0x7f51c16791f8>,'wsgi.file_wrapper': <class 'wsgiref.util.FileWrapper'>,'wsgi.input': <_io.BufferedReader name=7>,'wsgi.multiprocess': False,'wsgi.multithread': True,'wsgi.run_once': False,'wsgi.url_scheme': 'http','wsgi.version': (1,0)}
2020-10-06 19:02:35,249 - DEBUG: Sanitized script name: ''
2020-10-06 19:02:35,250 - DEBUG: Sanitized path: '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf'
2020-10-06 19:02:35,251 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:35,251 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:35,251 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:35,251 - INFO: Rights: '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match any section
2020-10-06 19:02:35,252 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:35,252 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:35,252 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:35,252 - INFO: Rights: '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match any section
2020-10-06 19:02:35,252 - INFO: Access to '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' denied for anonymous user
2020-10-06 19:02:35,252 - DEBUG: Asking client for authentication
2020-10-06 19:02:35,252 - DEBUG: Response content:
Access to the requested resource forbidden.
2020-10-06 19:02:35,252 - INFO: PUT response status for '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' in 0.004 seconds: 401 Unauthorized
2020-10-06 19:02:59,278 - INFO: PROPFIND request for '/usapct/' with depth '0' received from ‘ip.address’ (forwarded by 127.0.0.1) using 'iOS/14.0.1 (18A393) dataaccessd/1.0'
2020-10-06 19:02:59,279 - DEBUG: Request headers:
{'CONTENT_LENGTH': '439','CONTENT_TYPE': 'text/xml','HTTP_BRIEF': 't','HTTP_DEPTH': '0','HTTP_PREFER': 'return=minimal','PATH_INFO': '/usapct/','REQUEST_METHOD': 'PROPFIND',0)}
2020-10-06 19:02:59,279 - DEBUG: Sanitized script name: ''
2020-10-06 19:02:59,279 - DEBUG: Sanitized path: '/usapct/'
2020-10-06 19:02:59,280 - DEBUG: Rule '':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,280 - DEBUG: Rule '':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,280 - DEBUG: Rule '':'usapct' doesn't match 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,280 - INFO: Rights: '':'usapct' doesn't match any section
2020-10-06 19:02:59,280 - DEBUG: Rule '':'' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,280 - DEBUG: Rule '':'' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,280 - DEBUG: Rule '':'' doesn't match 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,280 - INFO: Rights: '':'' doesn't match any section
2020-10-06 19:02:59,280 - INFO: Access to '/usapct/' denied for anonymous user
2020-10-06 19:02:59,280 - DEBUG: Asking client for authentication
2020-10-06 19:02:59,280 - DEBUG: Response content:
Access to the requested resource forbidden.
2020-10-06 19:02:59,281 - INFO: PROPFIND response status for '/usapct/' with depth '0' in 0.003 seconds: 401 Unauthorized
2020-10-06 19:02:59,863 - INFO: PROPFIND request for '/usapct/' with depth '0' received from ‘ip.address’ (forwarded by 127.0.0.1) using 'iOS/14.0.1 (18A393) dataaccessd/1.0'
2020-10-06 19:02:59,863 - DEBUG: Request headers:
{'CONTENT_LENGTH': '439','HTTP_AUTHORIZATION': 'Basic **masked**',863 - DEBUG: Sanitized script name: ''
2020-10-06 19:02:59,863 - DEBUG: Sanitized path: '/usapct/'
2020-10-06 19:02:59,866 - INFO: Successful login: 'usapct'
2020-10-06 19:02:59,867 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,867 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,867 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,867 - WARNING: Access to principal path '/usapct/' denied by rights backend
2020-10-06 19:02:59,868 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,868 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,868 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,868 - DEBUG: Rule 'usapct':'' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,868 - DEBUG: Rule 'usapct':'' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,868 - DEBUG: Rule 'usapct':'' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,869 - DEBUG: Request content:
<?xml version="1.0"?>
<propfind xmlns="DAV:" xmlns:CR="urn:ietf:params:xml:ns:carddav" xmlns:CS="http://calendarserver.org/ns/">
  <prop>
    <CR:addressbook-home-set />
    <CR:directory-gateway />
    <displayname />
    <CS:email-address-set />
    <principal-collection-set />
    <principal-URL />
    <resource-id />
    <supported-report-set />
  </prop>
</propfind>

2020-10-06 19:02:59,870 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,870 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,870 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,871 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:02:59,871 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:02:59,871 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:02:59,871 - DEBUG: 'usapct' has read access to collection 'usapct'
2020-10-06 19:02:59,871 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CR="urn:ietf:params:xml:ns:carddav" xmlns:CS="http://calendarserver.org/ns/">
  <response>
    <href>/usapct/</href>
    <propstat>
      <prop>
        <CR:addressbook-home-set>
          <href>/usapct/</href>
        </CR:addressbook-home-set>
        <principal-collection-set>
          <href>/</href>
        </principal-collection-set>
        <principal-URL>
          <href>/usapct/</href>
        </principal-URL>
        <supported-report-set>
          <supported-report>
            <report>
              <expand-property />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-search-property-set />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-property-search />
            </report>
          </supported-report>
        </supported-report-set>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <CR:directory-gateway />
        <displayname />
        <CS:email-address-set />
        <resource-id />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2020-10-06 19:02:59,872 - INFO: PROPFIND response status for '/usapct/' with depth '0' in 0.009 seconds: 207 Multi-Status
2020-10-06 19:03:00,130 - INFO: PROPFIND request for '/usapct/' with depth '1' received from ‘ip.address’ (forwarded by 127.0.0.1) using 'iOS/14.0.1 (18A393) dataaccessd/1.0'
2020-10-06 19:03:00,131 - DEBUG: Request headers:
{'CONTENT_LENGTH': '782','HTTP_DEPTH': '1',0)}
2020-10-06 19:03:00,131 - DEBUG: Sanitized script name: ''
2020-10-06 19:03:00,131 - DEBUG: Sanitized path: '/usapct/'
2020-10-06 19:03:00,134 - INFO: Successful login: 'usapct'
2020-10-06 19:03:00,135 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:00,135 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:00,135 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:00,135 - WARNING: Access to principal path '/usapct/' denied by rights backend
2020-10-06 19:03:00,136 - DEBUG: Rule 'usapct':'' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:00,136 - DEBUG: Rule 'usapct':'' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:00,136 - DEBUG: Rule 'usapct':'' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:00,136 - DEBUG: Request content:
<?xml version="1.0"?>
<propfind xmlns="DAV:" xmlns:CR="urn:ietf:params:xml:ns:carddav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ME="http://me.com/_namespace/">
  <prop>
    <add-member />
    <ME:bulk-requests />
    <current-user-privilege-set />
    <displayname />
    <ME:guardian-restricted />
    <CR:max-image-size />
    <CR:max-resource-size />
    <CS:me-card />
    <owner />
    <CS:push-transports />
    <CS:pushkey />
    <quota-available-bytes />
    <quota-used-bytes />
    <resource-id />
    <resourcetype />
    <supported-report-set />
    <sync-token />
  </prop>
</propfind>

2020-10-06 19:03:00,137 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:00,137 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:00,137 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:00,138 - DEBUG: Rule 'usapct':'usapct' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:00,138 - DEBUG: Rule 'usapct':'usapct' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:00,138 - DEBUG: Rule 'usapct':'usapct' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:00,138 - DEBUG: 'usapct' has read access to collection 'usapct'
2020-10-06 19:03:00,138 - DEBUG: Rule 'usapct':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:00,139 - DEBUG: Rule 'usapct':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:00,139 - DEBUG: Rule 'usapct':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' matches 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:00,139 - DEBUG: Rule 'usapct':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:00,139 - DEBUG: 'usapct' has read access to collection 'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22'
2020-10-06 19:03:00,202 - DEBUG: Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CR="urn:ietf:params:xml:ns:carddav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ME="http://me.com/_namespace/">
  <response>
    <href>/usapct/</href>
    <propstat>
      <prop>
        <current-user-privilege-set>
          <privilege>
            <read />
          </privilege>
        </current-user-privilege-set>
        <owner>
          <href>/usapct/</href>
        </owner>
        <resourcetype>
          <principal />
          <collection />
        </resourcetype>
        <supported-report-set>
          <supported-report>
            <report>
              <expand-property />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-search-property-set />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-property-search />
            </report>
          </supported-report>
        </supported-report-set>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <add-member />
        <ME:bulk-requests />
        <displayname />
        <ME:guardian-restricted />
        <CR:max-image-size />
        <CR:max-resource-size />
        <CS:me-card />
        <CS:push-transports />
        <CS:pushkey />
        <quota-available-bytes />
        <quota-used-bytes />
        <resource-id />
        <sync-token />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
  <response>
    <href>/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/</href>
    <propstat>
      <prop>
        <current-user-privilege-set>
          <privilege>
            <read />
          </privilege>
        </current-user-privilege-set>
        <displayname>contacts</displayname>
        <owner>
          <href>/usapct/</href>
        </owner>
        <resourcetype>
          <CR:addressbook />
          <collection />
        </resourcetype>
        <supported-report-set>
          <supported-report>
            <report>
              <expand-property />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-search-property-set />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <principal-property-search />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <sync-collection />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <CR:addressbook-multiget />
            </report>
          </supported-report>
          <supported-report>
            <report>
              <CR:addressbook-query />
            </report>
          </supported-report>
        </supported-report-set>
        <sync-token>http://radicale.org/ns/sync/ea1aeaeaae753ad79d88626223a1a86f</sync-token>
      </prop>
      <status>HTTP/1.1 200 OK</status>
    </propstat>
    <propstat>
      <prop>
        <add-member />
        <ME:bulk-requests />
        <ME:guardian-restricted />
        <CR:max-image-size />
        <CR:max-resource-size />
        <CS:me-card />
        <CS:push-transports />
        <CS:pushkey />
        <quota-available-bytes />
        <quota-used-bytes />
        <resource-id />
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>
</multistatus>

2020-10-06 19:03:00,203 - INFO: PROPFIND response status for '/usapct/' with depth '1' in 0.072 seconds: 207 Multi-Status
2020-10-06 19:03:03,069 - INFO: PUT request for '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' received from ‘ip.address’ (forwarded by 127.0.0.1) using 'iOS/14.0.1 (18A393) dataaccessd/1.0'
2020-10-06 19:03:03,070 - DEBUG: Request headers:
{'CONTENT_LENGTH': '317814',0)}
2020-10-06 19:03:03,070 - DEBUG: Sanitized script name: ''
2020-10-06 19:03:03,070 - DEBUG: Sanitized path: '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf'
2020-10-06 19:03:03,071 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:03,071 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:03,071 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:03,071 - INFO: Rights: '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' doesn't match any section
2020-10-06 19:03:03,071 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'admin':'.*' from section 'admin'
2020-10-06 19:03:03,071 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'write':'.*' from section 'writeonly_contacts'
2020-10-06 19:03:03,071 - DEBUG: Rule '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match 'usapct':'.*' from section 'readonly_contacts'
2020-10-06 19:03:03,071 - INFO: Rights: '':'usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22' doesn't match any section
2020-10-06 19:03:03,071 - INFO: Access to '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' denied for anonymous user
2020-10-06 19:03:03,071 - DEBUG: Asking client for authentication
2020-10-06 19:03:03,072 - DEBUG: Response content:
Access to the requested resource forbidden.
2020-10-06 19:03:03,072 - INFO: PUT response status for '/usapct/8cdcbb5d-9816-b89c-d22c-63d2ac4a9a22/Contact.vcf' in 0.002 seconds: 401 Unauthorized

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...