Hello, I am running Apache 2.0.49 with mod_perl,
mod_ssl, on Windows 2000.

The problem that I am trying to solve is to take a
user's certificate, find out that information, and
rewrite that information in the Apache Environment
table. 

When the page I have finally loads, the client machine
never receives the updated information and still gets
the old information from the cert. Is there some scope
of the perl module that I need to worry about? My only
guess would be I need to do something special to
modify the stuff in Apache through perl.

How do I override that information in Apache?

-Richard D.

For debugging purposes, I print the information in
Apache's standard error log.

for example, here's some of my code: 

package Apache::Certmachine;
use strict;
use mod_perl();
use Apache();
use Apache::Constants qw(:common);
use Net::LDAP;
use Text::ParseWords;
use MIME::Base64;
use CGI qw(:standard);

sub handler{

my $r =shift;
return OK unless $r->is_main;

my $key="";

# print the env variables

foreach $key (sort(keys(%ENV)) {
print STDERR "Before:$key = $ENV{$key};
}

my $cn = $subr->subprocess_env('SSL_CLIENT_DN_CN');
my $dn = $subr->subprocess_env('SSL_CLIENT_DN');

#print the CN and DN from cert
print STDERR "SSL_CLIENT_DN_CN: $CN";
print STDERR "SSL_CLIENT_DN: $DN";

#now try to reset the DN and CN with values
$dn = "C=US, O=DISNEYLAND, CN=ETHAN MICHEAL HUNT";
$cn = "CN=ETHAN MICHEAL HUNT";

$subr - >subprocess_env->set(SSL_CLIENT_S_DN=>$dn);
$subr - >subprocess_env->set(SSL_CLIENT_S_DN_CN=>$cn);

#i can pull out this info again, and it appears to be
# reset, but the client never gets this info.

my $temp_dn =
$subr->subprocess_env('SSL_CLIENT_S_DN');
print STDERR "new dn: $temp_dn";

my $temp_cn =
$subr->subprocess_env('SSL_CLIENT_S_DN_CN');
print STDERR "new Cn: $temp_cn";

#print out all the std variables after the modssl
$subr->subprocess_env();

foreach $key(sort keys(%ENV)) {
print STDERR "After:$key = $ENV{$KEY} \N";
}


}


        
                
__________________________________
Do you Yahoo!?
Vote for the stars of Yahoo!'s next ad campaign!
http://advision.webevents.yahoo.com/yahoo/votelifeengine/

-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to