He intentado autenticar mi aplicación CGI a través de 2 controladores, uno que usa nombre de usuario/contraseña almacenado en la base de datos y otro que usa el directorio activo ldap.Autenticación de aplicación CGI utilizando varios controladores
siguiente es el código
$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,
);
¿Cómo puedo hacer la aplicación compruebe el otro conductor no está autenticado con uno. En este momento, como era de esperar, es el controlador que se encuentra en la parte inferior el que funciona y ambos funcionan, dependiendo de cuál fue el último asignado.