在向tomcat请求AJP代理请求之前,apache中是否有办法将REMOTE_USER设置为某个特定值的特定值?
我有一个SSO(Apache / mod_shib)-fronted tomcat应用程序。一些URL仍然需要公开访问。我为受保护的部分工作了shibboleth,但公共部分仍然需要用户名(不能改变应用程序的工作方式)。
我可以正确识别需要公开访问的网址,并为其关闭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 :(得分:0)
操作REMOTE_USER env变量非常困难,如果你在连接的最开始有额外的约束,我会尝试mod_security
。
不幸的是,为mod_security
编写规则并不是世界上最简单的事情。
答案 1 :(得分:0)
在身份验证后使用 REMOTE_USER 变量的内容填充标头 X-Remote-User 并将标头发送到后端代理的示例(apache 2.4.6)。
bot.DownloadFileAsync