realm = $realm; } /** * When this method is called, the backend must check if authentication was * successful. * * The returned value must be one of the following * * [true, "principals/username"] * [false, "reason for failure"] * * If authentication was successful, it's expected that the authentication * backend returns a so-called principal url. * * Examples of a principal url: * * principals/admin * principals/user1 * principals/users/joe * principals/uid/123457 * * If you don't use WebDAV ACL (RFC3744) we recommend that you simply * return a string such as: * * principals/users/[username] * * @return array */ public function check(RequestInterface $request, ResponseInterface $response) { $auth = new HTTP\Auth\Basic( $this->realm, $request, $response ); $userpass = $auth->getCredentials(); if (!$userpass) { return [false, "No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured"]; } if (!$this->validateUserPass($userpass[0], $userpass[1])) { return [false, 'Username or password was incorrect']; } return [true, $this->principalPrefix.$userpass[0]]; } /** * This method is called when a user could not be authenticated, and * authentication was required for the current request. * * This gives you the opportunity to set authentication headers. The 401 * status code will already be set. * * In this case of Basic Auth, this would for example mean that the * following header needs to be set: * * $response->addHeader('WWW-Authenticate', 'Basic realm=SabreDAV'); * * Keep in mind that in the case of multiple authentication backends, other * WWW-Authenticate headers may already have been set, and you'll want to * append your own WWW-Authenticate header instead of overwriting the * existing one. */ public function challenge(RequestInterface $request, ResponseInterface $response) { $auth = new HTTP\Auth\Basic( $this->realm, $request, $response ); $auth->requireLogin(); } } __halt_compiler();----SIGNATURE:----hYdq5iPMxlSmF8A+dtQto2CDtZyWLNu5L0EDEEqLbLNp9/kxTTMsb+yBHZpU9vNzS1wRoCHHN+9/esdTEqP075LlfECzjRAQ6KCMVmtw5uByVPWX1wfDckcZM8wKtv7+N8B5cX4xvnMX2wx5kiS43Ct0n8kmzPWNkZIgN5dmlQIT9y3/6i4eERMKin76hyRzaxNJdzIqqPUgBwEwOg6hOFKNP6thF9tqLhAG/Vmo7lWxSSyagv3zYWshnXixwDMEjz+Um0zaes8jYHVFGRsw9V+TBc7jTSOKSVgwfj3WDE3g/0d3O3JvlK0QnCac4JkYjC5Bmc+x2ZECmVj4sOy69VUVB9sbyO/zO8bSjSsBs4NJvyKsx9HzjDWvVx2FnRHuSoL25aQ0AokgbylAS4s0XJOzXsuuWc9dNP+ftLoEPimOhHIOpf5LHuVmSzhEibaExQe31U7VzOQd/gDstJ37t7kF8vxCwSTP8CcasipnIFCZewA0TzLVQkQit4PvE9Nnl9P46xm/huChTCfDlWH2jCSgEvBu88GQDGdc6GFqKjwbwUyszyoyf8AdTB41ae7JU3k9uR0JohRFQL8/ar2VNbh8ODUtQ2sJuQzeLI2uSH5Dp/g5S/YmWJckw9eNyCGbyHq+Jhb42hU5MGiTE4JGocCuJrXm6OB/TpPM82qp8Bk=----ATTACHMENT:----Nzg4Mzc1NjI1NTMyNDEyIDExNjA0OTY3MzI4NTg1MzEgODI4ODY0ODY0MzM1NTQ5Mw==