Java Spring3安全性和相对重定向URL
我们有一个Spring3应用程序,在Squid代理后面有SpringSecurity。问题是Spring只知道内部squid 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
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,你能提供这些细节吗,因为我也遇到了这个问题我在重定向方面也有同样的问题,不仅仅是安全问题。。。