Я пытался аутентифицировать свое приложение CGI с помощью 2 драйверов, один из которых использует имя пользователя / пароль, хранящиеся в базе данных, а другой - с помощью активного каталога ldap.
ниже приведен код
$self->authen->config(
DRIVER => [ 'DBI',
DBH => $self->dbh,
TABLE => 'user',
CONSTRAINTS => {
'user.username' => '__CREDENTIAL_1__',
'MD5:user.password' => '__CREDENTIAL_2__'
},
],
DRIVER => [ 'Authen::Simple::LDAP',
host => 'ldapad.company.com',
basedn => 'OU=XXX,OU=XX,DC=XXX,DC=XXX',
binddn => 'CN=usename,OU=Users,OU=XXX,OU=AD,DC=XXX,DC=xxx',
bindpw => 'secret',
filter => '(cn=%s)',
],
CREDENTIALS => [ 'authen_username', 'authen_password' ],
STORE => 'Session',
LOGOUT_RUNMODE => 'logout',
LOGIN_RUNMODE => 'login',
POST_LOGIN_RUNMODE => 'okay',
RENDER_LOGIN => \&my_login_form,
);
Как заставить приложение проверить, что другой драйвер не аутентифицирован ни для одного.Прямо сейчас, как и ожидалось, драйвер, указанный внизу, работает, и они оба работают, в зависимости от того, который был назначен последним.