package FixDumbWindowsUsernameMangling; use strict; use warnings; use Apache::Access (); use Apache::RequestUtil (); use Apache::Const -compile => qw(OK DECLINED AUTH_REQUIRED); use Apache::Connection (); use Apache::Access(); use Apache::RequestRec (); use APR::Table (); use MIME::Base64; sub handler { my $r = shift; my ($status, $password) = $r->get_basic_auth_pw(); return Apache::DECLINED unless $status == Apache::OK; my $unmangled_user = $r->user; return Apache::DECLINED unless $unmangled_user =~ s/^.*\\//; my $new_auth_header = "Basic " . encode_base64("$unmangled_user:$password"); $r->headers_in->set(Authorization => $new_auth_header); return Apache::DECLINED; } 1;