apache - 在代理到 tomcat 之前在 apache 中设置 REMOTE_USER

标签 apache tomcat single-sign-on shibboleth

在 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/

相关文章:

mysql - 通过虚拟主机路由时,Tomcat Java Web 应用程序未连接到 MySQL

apache - 如何绑定(bind)具有crt文件的SSL证书

java - 如何在不向前移动迭代器的情况下获取单元格值 - Excel、Java POI

apache - JEE 的三层架构

tomcat - 为什么tomcat类加载器打破双亲委派

android - android 中的 sso 使用 microsoft azure sdk -ADAL

php - 如果已升级,请注意 : Need to manually update the pg_stats_reporter. ini

spring - 添加 expire 到 Spring Security remember me cookie

single-sign-on - 如何将 openam 配置为身份提供者 (IdP) 以测试基于 SAML 的 SSO

angularjs - Siteminder SSO + Spring Security + Angular JS