我对Spring Security HTTPS重定向策略有疑问。 首先,配置:
使用客户端直接连接到tomcat的配置(即没有jk),我看到通过配置security.xml文件使用安全端口重定向来管理https,如下所示:
<http>
<intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https"/>
...
</http>
现在,问题是:在apache(使用jk)之后使用tomcat,安全部分位于不同的主机上,以便我有以下内容
我想知道是否可以配置spring security以重定向到安全主机,以防需要https。 我看到有一个端口映射配置availbale,但我没有看到类似的主机。
<http>
...
<port-mappings>
<port-mapping http="9080" https="9443"/>
</port-mappings>
</http>
提前致谢。
PS。主机服务强加了双重主机配置。
答案 0 :(得分:1)
默认行为的实现是使用https前缀简单重定向到相同的URI,这在RetryWithHttpsEntryPoint
调用的SecureChannelProcessor
中完成。通过编写自定义AbstractRetryEntryPoint
,您不仅可以更改协议,还可以更改主机名,从而轻松实现所需的行为。
一旦您实现了该类,请根据其javadoc中提供的示例配置ChannelProcessingFilter
:http://static.springsource.org/spring-security/site/docs/3.1.3/apidocs/org/springframework/security/web/access/channel/ChannelProcessingFilter.html