[Rt-devel] Patch to allow alternate REMOTE_USER variable for WebExternalAuth.

Jesse Vincent jesse at bestpractical.com
Thu Sep 24 17:37:25 EDT 2009


It's our intent that sites override WebCanonicalizeInfo locally (to do
something like what you have done). Because of that, I'm not sure it
makes a lot of sense to clutter that sub with options.


On Thu, Sep 24, 2009 at 03:08:09PM -0400, Jason A. Smith wrote:
> We are are testing WebAuth with RT and for it to work with
> WebExternalAuth, I needed to have RT look for a variable name different
> than the default REMOTE_USER.  Since Apache reserves REMOTE_USER for its
> own purposes, WebAuth cannot use that variable.  So, we have our WebAuth
> server set a different variable which contains the user's login name.
> The attached patch adds an additional config variable and changes the
> WebCanonicalizeInfo function to return the value of that variable, if
> specified, or the default REMOTE_USER if not set.
> 
> I tested this with our WebAuth server and rt-3.8.5.
> 
> ~Jason
> 
> 
> -- 
> /------------------------------------------------------------------\
> |  Jason A. Smith                          Email:  smithj4 at bnl.gov |
> |  Atlas Computing Facility, Bldg. 510M    Phone: +1-631-344-4226  |
> |  Brookhaven National Lab, P.O. Box 5000  Fax:   +1-631-344-7616  |
> |  Upton, NY 11973-5000,  U.S.A.                                   |
> \------------------------------------------------------------------/
> 

> diff -urN rt-3.8.5-dist/etc/RT_Config.pm rt-3.8.5/etc/RT_Config.pm
> --- rt-3.8.5-dist/etc/RT_Config.pm	2009-09-14 13:57:24.000000000 -0400
> +++ rt-3.8.5/etc/RT_Config.pm	2009-09-22 10:17:12.000000000 -0400
> @@ -975,6 +975,15 @@
>  
>  Set($WebExternalAuth, undef);
>  
> +=item C<$WebExternalAuthVarName>
> +
> +If C<$WebExternalAuthVarName> is defined, RT will use that environment
> +variable instead of the default REMOTE_USER.
> +
> +=cut
> +
> +Set($WebExternalAuthVarName, undef);
> +
>  =item C<$WebFallbackToInternalAuth>
>  
>  If C<$WebFallbackToInternalAuth> is defined, the user is allowed a chance
> diff -urN rt-3.8.5-dist/etc/RT_Config.pm.in rt-3.8.5/etc/RT_Config.pm.in
> --- rt-3.8.5-dist/etc/RT_Config.pm.in	2009-09-14 13:23:22.000000000 -0400
> +++ rt-3.8.5/etc/RT_Config.pm.in	2009-09-22 10:22:08.000000000 -0400
> @@ -975,6 +975,15 @@
>  
>  Set($WebExternalAuth, undef);
>  
> +=item C<$WebExternalAuthVarName>
> +
> +If C<$WebExternalAuthVarName> is defined, RT will use that environment
> +variable instead of the default REMOTE_USER.
> +
> +=cut
> +
> +Set($WebExternalAuthVarName, undef);
> +
>  =item C<$WebFallbackToInternalAuth>
>  
>  If C<$WebFallbackToInternalAuth> is defined, the user is allowed a chance
> diff -urN rt-3.8.5-dist/lib/RT/Interface/Web.pm rt-3.8.5/lib/RT/Interface/Web.pm
> --- rt-3.8.5-dist/lib/RT/Interface/Web.pm	2009-09-14 13:23:22.000000000 -0400
> +++ rt-3.8.5/lib/RT/Interface/Web.pm	2009-09-22 14:29:28.000000000 -0400
> @@ -123,7 +123,8 @@
>  =cut
>  
>  sub WebCanonicalizeInfo {
> -    return $ENV{'REMOTE_USER'}? lc $ENV{'REMOTE_USER'}: $ENV{'REMOTE_USER'};
> +    my $var = $RT::WebExternalAuthVarName ? $RT::WebExternalAuthVarName : 'REMOTE_USER';
> +    return $ENV{$var}? lc $ENV{$var}: $ENV{$var};
>  }
>  
>  # }}}




> _______________________________________________
> List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel


-- 


More information about the Rt-devel mailing list