Добрый день.
Необходимо настроить авторизацию с помощью Apache. Есть необходимость настройки таким образом, что бы имя пользователя принималось в формате: domain\user в текущем случае работает только без указания доменного суфикса. Perl Почему-то не обрабатывает логин что бы привести его к виду, приемлемому для авторизации в Апаче.
Помогите пожалуйста. Конфиг апача:
PerlModule ModPerl::Auth
<Location /test>
SetHandler perl-script
PerlHandler ModPerl::Auth
Order deny,allow
Allow from all
AuthName example
AuthType basic
AuthBasicProvider ldap
AuthLDAPUrl ldap://dc.example.com:389/dc=example,dc=com?sAMAccountName?sub?(objectClass=*)
AuthLDAPBindDN testuser@example.com
AuthLDAPBindPassword "Password"
Require valid-user
</Location>
package ModPerl::Auth;
use Apache::Constants qw(:common);
sub handler
{
my $r = shift;
my $c = $r->connection;
my $auth_header = $r->headers_in->get('Authorization') || '';
my $credentials = (split / /, $auth_header)[-1] || '';
my ($username,$password) = split /:/,MIME::Base64::decode($credentials),
2;
if (defined($username) && ( $username =~ /^([A-Za-z]+\\)/))
{
my @usr_parts = (split /\\/,$username);
$username = lc($usr_parts[1]);
}
return DECLINED unless $username;
$credentials = MIME::Base64::encode(join(':',$username,$password));
$r->headers_in->set(Authorization =>"Basic $credentials");
#Procced to login to the system.
return OK;
}
1;