LINUX.ORG.RU

Сообщения mellon

 

apache mod_perl нужна помощь

Форум — Development

Добрый день.

Необходимо настроить авторизацию с помощью 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>
Конфиг ModPerl::Auth:

 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;

 ,

mellon
()

RSS подписка на новые темы