Java Spring3安全性和相对重定向URL

Java Spring3安全性和相对重定向URL,java,spring,spring-security,squid,Java,Spring,Spring Security,Squid,我们有一个Spring3应用程序,在Squid代理后面有SpringSecurity。问题是Spring只知道内部squid url,因此在成功登录example.com/login后,它将重定向到example.com/home,而不是internal.example.com 有人知道如何处理这种情况吗 我的配置: <security:http use-expressions="true" auto-config="true"> <security:intercept

我们有一个Spring3应用程序,在Squid代理后面有SpringSecurity。问题是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>

编辑:
在我的例子中,管理员错误地设置了mod_jk,所以squid和上面的配置一切正常。

我有一个web应用程序,它在Apache HTTP反向代理背后具有Spring安全性,还有一些愚蠢的应用程序,其行为与上面描述的类似,我们的解决方案是使用 模块重写模块

无论如何,你说的是非常奇怪的,因为正确的Spring安全配置应该使用相对的url,而不管url中使用的是天气、内部还是外部主机

如果您配置了URL

 <security:form-login login-page="//login.jsp" login-processing-url="/login" always-use-default-target="true"/>


在内部或外部URL中的行为应该是相同的,这听起来像是配置中的问题

我有一个类似的问题,在我(目前是PHP)的应用程序前面有一个nginx反向代理,但其他人建议在代理上完成修复URL的工作,例如:

响应头重新映射。响应头可能包含 明确指向content web服务器的信息。一个 示例是与重定向一起使用的“Location:”标头。这个 反向代理服务器重新映射“位置:”字段,替换 使用自己的地址引用content web服务器


还有一个相关问题的答案:。

问题是
example.com
实际上是
internal.example.com
的代理(squid)。spring应用程序部署到
internal.example.com
。这是它唯一知道的url。但是用户只会/应该看到
example.com
,而不应该看到
internal.example.com
,您可以发布Spring安全配置吗?但它看起来确实像是Squid配置问题。添加了我的配置。但是,管理员的jkMount设置不正确,这就是问题所在。你是对的,Spring Sec正在按其应有的方式处理一切。@john,你能提供这些细节吗,因为我也遇到了这个问题我在重定向方面也有同样的问题,不仅仅是安全问题。。。