mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-11-10 17:13:38 +08:00
Added StartTLS functionality
Added StartTLS in function Connect(). And also added parameters in config to activate StartTLS.
This commit is contained in:
parent
0efc0bbe3a
commit
383e40636b
3 changed files with 18 additions and 0 deletions
|
@ -7,6 +7,7 @@ class LdapConfig
|
|||
{
|
||||
public const CONFIG_SERVER = "server";
|
||||
public const CONFIG_PROTOCOL_VERSION = "server_version";
|
||||
public const CONFIG_STARTTLS = "starttls";
|
||||
|
||||
public const CONFIG_BIND_USER = "bind_user";
|
||||
public const CONFIG_BIND_PASSWORD = "bind_password";
|
||||
|
@ -28,6 +29,7 @@ class LdapConfig
|
|||
|
||||
public $server;
|
||||
public $protocol;
|
||||
public $starttls;
|
||||
public $bind_user;
|
||||
public $bind_password;
|
||||
public $user_base;
|
||||
|
@ -48,6 +50,7 @@ class LdapConfig
|
|||
$ldap = new self();
|
||||
$ldap->server = trim($config->Get("plugin", self::CONFIG_SERVER));
|
||||
$ldap->protocol = (int)trim($config->Get("plugin", self::CONFIG_PROTOCOL_VERSION, 3));
|
||||
$ldap->starttls = (bool)trim($config->Get("plugin", self::CONFIG_STARTTLS));
|
||||
$ldap->bind_user = trim($config->Get("plugin", self::CONFIG_BIND_USER));
|
||||
$ldap->bind_password = trim($config->Get("plugin", self::CONFIG_BIND_PASSWORD));
|
||||
$ldap->user_base = trim($config->Get("plugin", self::CONFIG_USER_BASE));
|
||||
|
|
|
@ -178,6 +178,15 @@ class LdapIdentities implements IIdentities
|
|||
return false;
|
||||
}
|
||||
|
||||
// Activate StartTLS
|
||||
if ($this->config->starttls) {
|
||||
$starttlsResult = ldap_start_tls($ldap);
|
||||
if (!$starttlsResult) {
|
||||
$this->ldapAvailable = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$this->ldap = $ldap;
|
||||
$this->ldapConnected = true;
|
||||
return true;
|
||||
|
|
|
@ -57,6 +57,12 @@ class LdapIdentitiesPlugin extends AbstractPlugin
|
|||
->SetLabel("LDAP Protocol Version")
|
||||
->SetType(PluginPropertyType::SELECTION)
|
||||
->SetDefaultValue([2, 3]),
|
||||
|
||||
Property::NewInstance(LdapConfig::CONFIG_STARTTLS)
|
||||
->SetLabel("Use StartTLS")
|
||||
->SetType(PluginPropertyType::BOOL)
|
||||
->SetDescription("Whether or not to use TLS encrypted connection")
|
||||
->SetDefaultValue(true),
|
||||
|
||||
Property::NewInstance(LdapConfig::CONFIG_BIND_USER)
|
||||
->SetLabel("Bind User DN")
|
||||
|
|
Loading…
Reference in a new issue