【问题标题】:Apache 2.x and mod_proxy produce redirect loop if user is not authenticated如果用户未通过身份验证,Apache 2.x 和 mod_proxy 会产生重定向循环
【发布时间】:2013-11-23 05:47:05
【问题描述】:

我有一个带有弹簧安全性的应用程序。如果用户未通过身份验证,他将被重定向到 bo/login 页面。

问题是我在 tomcat 前面设置 apache Web 服务器的方式会产生无限重定向循环:

<VirtualHost *:80>
       ServerName dev.bo.MYDOMAIN.com
       ProxyPass / ajp://localhost:20009/bo/
       ProxyPassReverse / ajp://localhost:20009/bo/
       ProxyPassReverseCookiePath /bo/ /
</VirtualHost>

有谁知道如果用户未通过身份验证,我该如何防止循环?

【问题讨论】:

    标签: java apache tomcat spring-security mod-proxy


    【解决方案1】:
    <VirtualHost *:80>
      ServerAdmin webmaster@localhost
      ServerName dev.bo.MYDOMAIN.com
      <Proxy *>
        Order deny,allow
        Allow from all
      </Proxy>
      ProxyPass / ajp://localhost:20009/bo/
      ProxyPassReverse / ajp://localhost:20009/bo/
    </VirtualHost>
    

    试试上面的配置

    【讨论】:

      【解决方案2】:

      我终于找到了问题所在。我还必须代理“bo”路径:

      <VirtualHost *:80>
         ServerName dev.bo.MYDOMAIN.com
         ProxyPass / ajp://localhost:20009/bo/
         ProxyPassReverse / ajp://localhost:20009/bo/
         ProxyPass /bo ajp://localhost:20009/bo/
         ProxyPassReverse /bo ajp://localhost:20009/bo/
         ProxyPassReverseCookiePath /bo/ /
      </VirtualHost>
      

      【讨论】:

        【解决方案3】:

        为什么要使用 mod_jk 和 mod_proxy?你应该能够做到

        ProxyPass / http://localhost:20009/bo/
        ProxyPassReverse / http://localhost:20009/bo/
        

        至少您为自己节省了协议切换。

        【讨论】:

        • 为什么不呢? ajp 协议有很多好东西。顺便说一句,这与我的问题无关。
        猜你喜欢
        • 2021-06-19
        • 2021-12-23
        • 2021-10-11
        • 1970-01-01
        • 2020-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多