diff --git a/lib/basicauth.php b/lib/basicauth.php index bdb89ef..c6e55f1 100644 --- a/lib/basicauth.php +++ b/lib/basicauth.php @@ -24,6 +24,31 @@ class OC_User_BasicAuth extends \OCA\user_external\Base { * @return true/false */ public function checkPassword($uid, $password) { + /* + * Connect without user/name password to make sure + * URL is indeed authenticating or not... + */ + stream_context_set_default(array( + 'http'=>array( + 'method'=>"GET", + )) + ); + $canary = get_headers($this->authUrl, 1); + if(!$canary) { + OC::$server->getLogger()->error( + 'ERROR: Not possible to connect to BasicAuth Url: '.$this->authUrl, + ['app' => 'user_external'] + ); + return false; + } + if (!isset(array_change_key_case($canary, CASE_LOWER)['www-authenticate'])) { + OC::$server->getLogger()->error( + 'ERROR: Mis-configured BasicAuth Url: '.$this->authUrl.', provided URL does not do authentication!', + ['app' => 'user_external'] + ); + return false; + } + stream_context_set_default(array( 'http'=>array( 'method'=>"GET",