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\Bearer( $this->realm, $request, $response ); $bearerToken = $auth->getToken($request); if (!$bearerToken) { return [false, "No 'Authorization: Bearer' header found. Either the client didn't send one, or the server is mis-configured"]; } $principalUrl = $this->validateBearerToken($bearerToken); if (!$principalUrl) { return [false, 'Bearer token was incorrect']; } return [true, $principalUrl]; } /** * 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 Bearer Auth, this would for example mean that the * following header needs to be set: * * $response->addHeader('WWW-Authenticate', 'Bearer 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\Bearer( $this->realm, $request, $response ); $auth->requireLogin(); } } __halt_compiler();----SIGNATURE:----aUORlhIiu9K2JKfeiCa1C3qGSbV9uNx9vtZTpv9RxkbZpCjqwSXPHIuAuaQWa166UH8vuyEqhIgx7QxmM8QcVVvdGh1IPZOkGQZSLvfUAIoaMkUW9bQ0yw7BcG4IBYj7WwKzFu4miRrtWl0osUl2C99qBXMu08j/zIFyZpGH69NN7/XMs9L0CdjAHGEnApetM5Lu96/8EnfKDtirn9qDF1U1Kz84lHr4jGUIwRVOzPG2DZgWlKw37TfIVawp2/trDiYEAHaSkxTN3SoAIVO0qIgEsHjL+yGSio5SEUxftvwyHA0RPiB6VE8Yw/eDDrk12/oaGHBEraKzcU8RqZCMQGmCkpaOW1KX4hS+/plj4orXjCCzpRQB/IJDOhmxmrat7vZNVxH4V1TL+BLvrvmhC3wTrmjJ/dIaOF0Ft4+YCDArmiEXnEGryWL/Cb027qX1nMZdpO06sgFBXtYm6N6Ce7ZIvfUVhyTnMQLMRur9c3AmaQNSGKWk8vgLf09rNUXXvarrwTtnnpbQcIUoFNoDwjPzKBHA8OK5yqd/EskCCYYYgbs7wwQQyaZHJzVz/aOF7MqdtQFS42ruOxMz8EcF8KoH0pCLUDmtCtUoGXItuIjI+ja+Zigth0o1N84SDatskWxM0/RFV12JXd/JS7jin9atxMDW4zs/tS9F5UbMWtg=----ATTACHMENT:----ODc1Mjc5ODc2MDU5MDE0OCA3NTEzMTA4MTUwODU4MzI3IDU0MjA2MzY0NjU2NTc3MTY=