2015-03-31 76 views
0

在AJP代理请求到tomcat之前,apache是​​否有办法将REMOTE_USER设置为特定URL的特定值?在代理之前将apache中的REMOTE_USER设置为tomcat

我有一个SSO(Apache/mod_shib) - 向前的tomcat应用程序。部分网址仍需要公开访问。我曾为受保护的部分工作,但公共部分仍需要用户名(不能更改应用程序的工作方式)。

我可以正确识别需要公开访问的URL并关闭shibboleth身份验证。当我这样做,现在有没有用户定义的,因此系统拒绝让我在

认为我想做的事情是这样的:

IF URL matches pattern: 
    turn off shibboleth 
    force set REMOTE_USER="anonymous" //and maybe AJP_REMOTE_USER, too?! 

我使用FakeBasicAuth实现这一尝试最后一位,但用户似乎在代理发生后被设置。有没有办法做到这一点?也许有更好的方法?

不太理想的替代方法是将tomcat应用程序配置为使用除REMOTE_USER之外的其他东西,然后尝试使用mod_rewrite设置该值。我宁愿不这样做,因为那么用户名将不会显示在tomcat访问日志中。

回答

0

操作REMOTE_USER env变量非常困难,如果您在连接开始时有额外的限制,我会尝试mod_security

不幸的是,编写mod_security的规则并不是世界上最简单的事情。