【问题标题】:Remove context name from URL - mod_proxy_ajp with Spring Security从 URL 中删除上下文名称 - 使用 Spring Security 的 mod_proxy_ajp
【发布时间】:2014-07-12 07:44:19
【问题描述】:

我有一个名为“FitnessTracker”的应用在 tomcat 上运行,发布 8080。我使用的是 Spring Security,当我使用 http://localhost:8080/FitnessTracker 直接在 tomcat 上测试它时一切正常

然后我在 Apache http 2.2 上配置了 mod_proxy_ajp,使用域名访问,下面是我的 VirtualHost 配置:

<VirtualHost *:80>
    ServerName www.testing.com
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    RewriteEngine on 
    RewriteRule ^/FitnessTracker/(.*)$ /$1 [P]

    ProxyPass /  ajp://localhost:8009/FitnessTracker/
    ProxyPassReverse / ajp://localhost:8009/FitnessTracker/
</VirtualHost>

现在,当我访问 www.testing.com/ - 它被重定向到 www.testing.com/FitnessTracker/login.html

有没有办法在 URL 中不包含 /FitnessTracker/?我想从 URL 中隐藏 tomcat 上下文名称。 理想情况下,我希望 URL 看起来像 www.testing.com/login.html 我知道这是由于 RewriteRule,但没有重写规则,带有 mod_proxy 的 spring 安全性不起作用 - 因为 Spring 安全性与上下文名称一起重定向到登录页面。

如果您有任何建议,请告诉我。

【问题讨论】:

    标签: spring security url proxy ajp


    【解决方案1】:

    我想你忘了重写 cookie 域和 cookie 路径。检查ProxyPassReverseCookieDomain 指令。从后端的角度来看,请求路径仍然必须看起来像 /FitnessTracker/

    【讨论】:

    猜你喜欢
    • 2019-08-11
    • 2016-04-13
    • 2014-04-22
    • 1970-01-01
    • 2013-09-29
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多