IMAP
extends AbstractBasic
in package
This is an authentication backend that uses imap.
Tags
Table of Contents
- $mailbox : string
- IMAP server in the form {host[:port][/flag1/flag2...]}.
- $principalPrefix : string
- This is the prefix that will be used to generate principal urls.
- $realm : string
- Authentication Realm.
- __construct() : mixed
- Creates the backend object.
- challenge() : mixed
- This method is called when a user could not be authenticated, and authentication was required for the current request.
- check() : array<string|int, mixed>
- When this method is called, the backend must check if authentication was successful.
- setRealm() : mixed
- Sets the authentication realm for this backend.
- imapOpen() : bool
- Connects to an IMAP server and tries to authenticate.
- validateUserPass() : bool
- Validates a username and password by trying to authenticate against IMAP.
Properties
$mailbox
IMAP server in the form {host[:port][/flag1/flag2...]}.
protected
string
$mailbox
Tags
$principalPrefix
This is the prefix that will be used to generate principal urls.
protected
string
$principalPrefix
= 'principals/'
$realm
Authentication Realm.
protected
string
$realm
= 'sabre/dav'
The realm is often displayed by browser clients when showing the authentication dialog.
Methods
__construct()
Creates the backend object.
public
__construct(string $mailbox) : mixed
Parameters
- $mailbox : string
Return values
mixed —challenge()
This method is called when a user could not be authenticated, and authentication was required for the current request.
public
challenge(RequestInterface $request, ResponseInterface $response) : mixed
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.
Parameters
- $request : RequestInterface
- $response : ResponseInterface
Return values
mixed —check()
When this method is called, the backend must check if authentication was successful.
public
check(RequestInterface $request, ResponseInterface $response) : array<string|int, mixed>
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]
Parameters
- $request : RequestInterface
- $response : ResponseInterface
Return values
array<string|int, mixed> —setRealm()
Sets the authentication realm for this backend.
public
setRealm(string $realm) : mixed
Parameters
- $realm : string
Return values
mixed —imapOpen()
Connects to an IMAP server and tries to authenticate.
protected
imapOpen(string $username, string $password) : bool
Parameters
- $username : string
- $password : string
Return values
bool —validateUserPass()
Validates a username and password by trying to authenticate against IMAP.
protected
validateUserPass(string $username, string $password) : bool
Parameters
- $username : string
- $password : string