Hello all...
I have a simple mod_perl program that does some custom role based
authentication before granting access to certain resources. That part does
work, but for a new feature I need to be able to embed roles into my
headers. Try as may, try as I might, those roles never show up...
consider a portion of my mod_perl program:
#####################
sub handler {
...
if($user) {
my $val = rest_call($user,$context, $r->log);
my $roles = $cache_hash{'roles'}->{$user};
my $role_string = join(',', @$roles);
$r->headers_out->set('prisme-roles'=> $role_string );
#$r->headers_out->add('prisme.roles'=> $role_string );
$r->err_headers_out->add('prisme-roles2', $role_string);
#$|++;
$r->rflush();# $r->rflush can't be called before the response phase
if using PerlFixupHandler Prisme::ValidateHeader
$r->log->info("Request end on pid $$: The user for this request is
$user, the roles are $role_string, returning $val");
return $val; #OK or FORBIDDEN
}
###################################
With either config in http.conf:
##############################
<Location /rails_prisme/>
SetHandler perl-script
PerlResponseHandler Prisme::ValidateHeader
#PerlFixupHandler Prisme::ValidateHeader
</Location>
####################
My Ruby on Rails controller:
#######################
def warmup
@headers = {}
@warmup_count = $PROPS['PRISME.warmup_apache'].to_i
request.headers.each do |elem|
@headers[elem.first.to_s] = elem.last.to_s
end
response.headers.each do |elem|
@headers[elem.first.to_s] = elem.last.to_s
end
respond_to do |format|
format.html # list_headers.html.erb
format.json { render :json => params['counter'] }
end
end
#######################
Never sees those headers! Help!
Thanks,
Cris
On Tue, Jun 13, 2017 at 12:52 PM, Cris Shupp <[email protected]> wrote:
> Hello all...
>
> I have a simple mod_perl program that does some custom role based
> authentication before granting access to certain resources. That part does
> work, but for a new feature I need to be able to embed roles into my
> headers. Try as may, try as I might, those roles never show up...
>
>
> consider a portion of my mod_perl program:
>
> sub handler {
> ...
> if($user) {
> my $val = rest_call($user,$context, $r->log);
> my $roles = $cache_hash{'roles'}->{$user};
> my $role_string = join(',', @$roles);
> $r->headers_out->set('prisme-roles'=> $role_string );
> #$r->headers_out->add('prisme.roles'=> $role_string );
> $r->err_headers_out->add('prisme-roles2', $role_string);
> #$|++;
> $r->rflush();# $r->rflush can't be called before the response
> phase if using PerlFixupHandler Prisme::ValidateHeader
> $r->log->info("Request end on pid $$: The user for this request is
> $user, the roles are $role_string, returning $val");
> return $val; #OK or FORBIDDEN
> }
>
> With either config in http.conf:
>
> <Location /rails_prisme/>
> SetHandler perl-script
> PerlResponseHandler Prisme::ValidateHeader
> #PerlFixupHandler Prisme::ValidateHeader
> </Location>
>
> My Ruby on Rails controller:
>
>
>
>