在 AJP 代理请求到 tomcat 之前,apache 中是否有一种方法可以将 REMOTE_USER 设置为特定 URL 的特定值?
我有一个面向 SSO (Apache/mod_shib) 的 tomcat 应用程序。一些 URL 仍然需要公开访问。我有 protected 部分的 shibboleth,但公共(public)部分仍然需要用户名(无法更改应用程序的工作方式)。
我可以正确识别需要公开访问的 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 访问日志中。
最佳答案
操作 REMOTE_USER env 变量非常困难,如果您有额外的约束在连接的一开始就这样做,我会尝试 mod_security
。
不幸的是,为 mod_security
编写规则并不是世界上最简单的事情。
关于apache - 在代理到 tomcat 之前在 apache 中设置 REMOTE_USER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29374393/