Login from web page ok, login from clients failed

Steps to reproduce

  1. Install LAMP (with self-signed SSL) and Owncloud (Version 10.2) on a local LAN server following the instruction here. Owncloud running on a new port.
  2. Having php 7.3 and php 7.2 both installed on the server. Configured to use php 7.2 following the instruction here.
  3. Enable the following apache module manually: rewrite, mod_fcgid, setenvif, headers as suggested here.
  4. Web initialization, login from web are fine.
  5. App passwords / tokens created.
  6. Login from Windows client (Version 2.5.4), Android app (newly installed from google play) failed at authentication.

Expected behaviour

Login from clients works.

Actual behaviour

Authentication failed

Server configuration

Operating system:
Ubuntu 18.04.2 LTS

Web server:
Apache2

Database:
10.1.40-MariaDB-0ubuntu0.18.04.1

PHP version:
7.2

ownCloud version: (see ownCloud admin page)
10.2.0.5

Updated from an older ownCloud or fresh install:
fresh install

Where did you install ownCloud from:
http://download.owncloud.org/download/repositories/10.2/Ubuntu_18.04/

Signing status (ownCloud 9.0 and above):
“No errors have been found.”

Login as admin user into your ownCloud and access 
http://example.com/index.php/settings/integrity/failed 
paste the results into https://gist.github.com/ and puth the link here.

The content of config/config.php:

List of activated apps:

Are you using external storage, if yes which one: local/smb/sftp/…
no
Are you using encryption: yes/no
no
Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/…
Webdav, I guess.

Client configuration

Operating system:
Windows 10

Logs

Web server error log

Insert your webserver log here

ownCloud log (data/owncloud.log)

I am just pasting those I think the most relevant. Ask me for more.

{"reqId":"bgVYlBUe2xLHEcb8oTvZ","level":0,"time":"2019-06-21T00:15:02+00:00","remoteAddr":"[client ip]","user":"[username]","app":"OC\\User\\Session::validateToken","method":"GET","url":"\/ocs\/v2.php\/apps\/notifications\/api\/v1\/notifications?format=json","message":"token d19e7754c0fd0405edf9e41055a05941b4f58660aa255cf4fe1f0efda36553e7310847ba1515ee2d5ddecb166a994e9409021e41358f09f9262b1772f788cee4 with token id 17 found, validating"}
{"reqId":"9a084e07-71df-44d8-b6ff-985f855ca38b","level":0,"time":"2019-06-21T00:15:22+00:00","remoteAddr":"[client ip]","user":"--","app":"webdav","method":"GET","url":"\/remote.php\/webdav\/","message":"Exception: HTTP\/1.1 401 No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured, No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\NotAuthenticated\",\"Message\":\"No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured, No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured\",\"Code\":0,\"Trace\":\"#0 [internal function]: Sabre\\\\DAV\\\\Auth\\\\Plugin->beforeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(466): Sabre\\\\Event\\\\EventEmitter->emit('beforeMethod', Array)\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\\/var\\\/www\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v1\\\/webdav.php(65): Sabre\\\\DAV\\\\Server->exec()\\n#5 \\\/var\\\/www\\\/owncloud\\\/remote.php(165): require_once('\\\/var\\\/www\\\/ownclo...')\\n#6 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Auth\\\/Plugin.php\",\"Line\":168}"}

Windows Client log

06-21 08:32:38:972 [ info gui.folder.manager ]:	Setup folders from  "[folders]" (migration)
06-21 08:32:38:974 [ info sync.clientproxy ]:	Set proxy configuration to use system configuration
06-21 08:32:38:989 [ info gui.application ]:	No configured folders yet, starting setup wizard
06-21 08:32:41:977 [ info gui.updater ]:	Checking for available update
06-21 08:32:41:977 [ info sync.accessmanager ]:	2 "" "https://updates.owncloud.com/client/?version=2.5.4.11415&platform=win32&oem=ownCloud&versionsuffix=&msi=true" has X-Request-ID "f9ae839e-ff14-4f2d-8461-6f1d6e5a2277"
06-21 08:32:42:915 [ info gui.updater ]:	Client is on latest version!
06-21 08:34:21:190 [ info gui.wizard ]:	No system proxy set by OS
06-21 08:34:21:190 [ info sync.accessmanager ]:	2 "" "https://[server ip]:[port]/status.php" has X-Request-ID "756ebfcf-2652-400e-8dfe-17a284889224"
06-21 08:34:21:190 [ info sync.networkjob ]:	OCC::CheckServerJob created for "https://[server ip]" + "status.php" "OCC::OwncloudSetupWizard"
06-21 08:34:23:931 [ info gui.sslerrordialog ]:	SSL-Connection is trusted:  true
06-21 08:34:23:932 [ info sync.account ]:	"SSL-Errors happened for url  \"https://[server ip]:[port]/status.php\" \tError in  QSslCertificate(\"3\", \"1d:2a:f6:4c:08:82:1e:ff:9d:5d:c6:54:4a:fa:f9:57:1d:64:b0:7b\", \"YssHb3IPgO5eiP0glNJyCw==\", (\"ASGROUP\"), (\"ASGROUP\"), QMap(), QDateTime(2019-06-20 11:35:48.000 UTC Qt::TimeSpec(UTC)), QDateTime(2029-06-17 11:35:48.000 UTC Qt::TimeSpec(UTC))) : \"The certificate is self-signed, and untrusted\" ( \"The certificate is self-signed, and untrusted\" ) \n " Certs are known and trusted! This is not an actual error.
06-21 08:34:23:972 [ info sync.networkjob.checkserver ]:	status.php returns:  QJsonDocument({"edition":"Community","installed":true,"maintenance":false,"needsDbUpgrade":false,"productname":"ownCloud","version":"10.2.0.5","versionstring":"10.2.0"})   QNetworkReply::NetworkError(NoError)  Reply:  QNetworkReplyHttpImpl(0xb372190)
06-21 08:34:23:972 [ info sync.networkjob.determineauthtype ]:	Determining auth type for QUrl("https://[server ip]:[port]/remote.php/webdav/")
06-21 08:34:23:973 [ info sync.accessmanager ]:	2 "" "https://[server ip]:[port]/remote.php/webdav/" has X-Request-ID "6ef97dfa-5b45-47e6-a851-5bde47aa1cbc"
06-21 08:34:23:973 [ info sync.networkjob ]:	OCC::SimpleNetworkJob created for "https://[server ip]" + "" ""
06-21 08:34:23:973 [ info sync.accessmanager ]:	6 "PROPFIND" "https://[server ip]:[port]/remote.php/webdav/" has X-Request-ID "80bab24a-372c-401b-9b5b-a7841c9bcbd1"
06-21 08:34:23:973 [ info sync.networkjob ]:	OCC::SimpleNetworkJob created for "https://[server ip]" + "" ""
06-21 08:34:24:059 [ info sync.networkjob.determineauthtype ]:	Auth type for QUrl("https://[server ip]:[port]/remote.php/webdav/") is 0
06-21 08:34:32:552 [ info gui.wizard ]:	Connect to url:  "https://[server ip]:[port]"
06-21 08:34:32:552 [ info sync.accessmanager ]:	6 "PROPFIND" "https://[server ip]:[port]/remote.php/webdav/" has X-Request-ID "747423c4-1f88-4f22-a59e-8f74124bd1be"
06-21 08:34:32:553 [ info sync.networkjob ]:	OCC::PropfindJob created for "https://[server ip]" + "/" "OCC::OwncloudSetupWizard"
06-21 08:34:32:635 [ warning sync.credentials.http ]:	Stop request: Authentication failed for  "https://[server ip]:[port]/remote.php/webdav/"
06-21 08:34:32:641 [ info sync.networkjob.propfind ]:	PROPFIND of QUrl("https://[server ip]:[port]/remote.php/webdav/") FINISHED WITH STATUS "AuthenticationRequiredError Host requires authentication"
06-21 08:34:32:641 [ warning sync.networkjob.propfind ]:	*not* successful, http result code is 401 ""
06-21 08:54:21:039 [ debug default ]	[ OCC::ownCloudGui::slotAbout ]:	QSize(512, 512)

Hey,

i did the following search:

https://central.owncloud.org/search?q=No%20'Authorization%3A%20Basic'%20header%20found.

and found quite a lot existing threads about this message.

There seems to be a FAQ about this available in "No basic authentication headers were found" message which mentions some additional required web server configuration for specific web server modules which might include the one you are using:

2 Likes

Hi tom42,

Thank you for the reply. I am sorry for haven’t been done the search properly as you did.

I have tried the first solution from the link you provided. Namely, put the following line in the vhost file of my apache site.

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

And it works!

Thank you!

2 Likes