Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Webdav external storage digest auth throws exception #3018

Closed
rasos opened this issue Jan 10, 2017 · 4 comments
Closed

Webdav external storage digest auth throws exception #3018

rasos opened this issue Jan 10, 2017 · 4 comments
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap feature: external storage

Comments

@rasos
Copy link

rasos commented Jan 10, 2017

Steps to reproduce

  1. User creates an external storage mount to a webdav server, which is offering digest auth
  2. Browse folders of external storage

Expected behaviour

Read and write from/to files.

Actual behaviour

Opening a file results in:

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception>
<s:message>No digest authentication headers were found</s:message>
<s:sabredav-version>1.8.12</s:sabredav-version>
</d:error>

However, if the webdav server is offering basic auth, the files are shown as expected.

Server configuration

Operating system:
Tested on several: Ubuntu 14.04+16.04, Raspian
Web server:
Apache
Database:
mySQL
Nextcloud version: (see Nextcloud admin page)
nextcloud 10, also tested with owncloud 8.1.9

Webdav server

We tested against GroupOffice, which does a perfect job with any other webdav client.
GroupOffice used to offer digest auth only. It offers now an option for basic auth, so that we could test, see https://sourceforge.net/p/group-office/bugs/1725/
However, Windows dav clients require digest auth.
The issue is independent of the SabreDav library version (tested 1.8.2 and 3.1).

Log from nextcloud

accessing file test.txt on webdav external storage offering digest auth

Exception: {"Exception":"GuzzleHttp\Exception\ClientException","Message":"Client error response [url] https://myNGO.net//webdav/user1/folder/test.txt [status code] 401 [reason phrase] Unauthorized","Code":401,"Trace":"#0 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Subscriber/HttpError.php(33): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Message\Response))\n#1 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Event/Emitter.php(108): GuzzleHttp\Subscriber\HttpError->onComplete(Object(GuzzleHttp\Event\CompleteEvent), 'complete')\n#2 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php(91): GuzzleHttp\Event\Emitter->emit('complete', Object(GuzzleHttp\Event\CompleteEvent))\n#3 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php(132): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))\n#4 /var/www/nextcloud/3rdparty/react/promise/src/FulfilledPromise.php(25): GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)\n#5 /var/www/nextcloud/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)\n#6 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php(43): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)\n#7 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php(135): GuzzleHttp\Message\FutureResponse::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))\n#8 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(165): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))\n#9 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(125): GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))\n#10 /var/www/nextcloud/lib/private/Http/Client/Client.php(137): GuzzleHttp\Client->get('https://myDOMAIN...', Array)\n#11 /var/www/nextcloud/lib/private/Files/Storage/DAV.php(359): OC\Http\Client\Client->get('https://myNGO...', Array)\n#12 /var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php(294): OC\Files\Storage\DAV->fopen('folder/test.txt', 'r')\n#13 /var/www/nextcloud/lib/private/Files/Storage/Wrapper/PermissionsMask.php(112): OC\Files\Storage\Wrapper\Wrapper->fopen('folder/test.txt', 'r')\n#14 /var/

@nickvergessen
Copy link
Member

@icewind1991 is or should this be supported?

@rasos
Copy link
Author

rasos commented Jan 11, 2017

It should. Basic authentication sends the user name and password unencrypted:
http://www.webdav.org/specs/rfc2617.html#rfc.section.3

@MorrisJobke
Copy link
Member

@icewind1991 is or should this be supported?

🏓

@MorrisJobke MorrisJobke added the 0. Needs triage Pending check for reproducibility or if it fits our roadmap label Jul 27, 2017
@nextcloud-bot nextcloud-bot added the stale Ticket or PR with no recent activity label Jun 20, 2018
@nextcloud-bot
Copy link
Member

Hey, this issue has been closed because the label stale is set and there were no updates for 14 days. Feel free to reopen this issue if you deem it appropriate.

(This is an automated comment from GitMate.io.)

@nextcloud-bot nextcloud-bot removed the stale Ticket or PR with no recent activity label Jul 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap feature: external storage
Projects
None yet
Development

No branches or pull requests

4 participants