Spring 3安全性和相对重定向URL

Jos*_*son 6 java spring squid spring-security

我们在Squid代理后面有一个带有Spring Security的Spring 3应用程序.问题是Spring只知道内部squid url,所以在成功登录后,example.com/login而不是重定向到example.com/home它重定向到internal.example.com.

有谁知道如何处理这种情况?

我的配置:

<security:http use-expressions="true" auto-config="true">
    <security:intercept-url pattern="/" access="hasRole('ROLE_ANONYMOUS') or hasRole('ROLE_GENERAL_ADMINISTRATION')"/>
    <security:intercept-url pattern="/**" access="hasRole('ROLE_GENERAL_ADMINISTRATION')"/>
    <security:intercept-url pattern="/static/**" filters="none"/>
    <security:logout invalidate-session="true" logout-url="/logout" logout-success-url="/"/>
    <security:form-login login-page="/" default-target-url="/dashboard"/>
    <security:anonymous/>
</security:http>
Run Code Online (Sandbox Code Playgroud)

编辑:

在我的情况下,管理员已经错误地设置了mod_jk所以一切都很好用鱿鱼和上面的配置.

dan*_*nik 1

我有一个带有 Spring security 的 Web 应用程序,背后有 Apache HTTP 反向代理和一些愚蠢的应用程序,其行为类似于上面描述的,我们的解决方案是使用 mod_rewrite 模块

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

无论如何,你所说的很奇怪,因为正确的 Spring 安全配置应该使用相对 url,并且 url 中使用的天气、内部或外部主机应该无关紧要。

如果配置 URL

 <security:form-login login-page="//login.jsp" login-processing-url="/login" always-use-default-target="true"/>
Run Code Online (Sandbox Code Playgroud)

在内部或外部 URL 中应该表现相同,这听起来像是配置问题。