https在default-target-url spring security中

时间:2010-02-09 07:03:52

标签: java https spring-security

我们在系统中使用spring security,我们的服务器使用https方案。

但是应用程序运行在http而不是https上,所以服务器是apache, 是https处理程序。而应用程序在防火墙后面的http上运行。

工作代码:

<form-login login-page="/Login.html"    
authentication-failure-url="https://www.ourapp.com/FailureLogin.jsp"  
always-use-default-target="false"  
default-target-url="https://www.ourapp.com/SuccessLogin.jsp"/>  
<form-login login-page="/Login.html" 
authentication-failure-url="https://www.ourapp.com/FailureLogin.jsp"
always-use-default-target="false"
default-target-url="https://www.ourapp.com/SuccessLogin.jsp"/>

不工作代码:

<form-login login-page="/Login.html"    
authentication-failure-url="/FailureLogin.jsp"  
always-use-default-target="false"  
default-target-url="/SuccessLogin.jsp"/>  
<form-login login-page="/Login.html" 
authentication-failure-url="/FailureLogin.jsp"
always-use-default-target="false"
default-target-url="/SuccessLogin.jsp"/> 

有什么办法可以提及: 重定向到以/SuccessLogin.jsp结尾但使用https协议的Url?

供参考,问题是@ Code ranch PS:我可以在TargetUrlResolver帮助我进行配置吗?

1 个答案:

答案 0 :(得分:6)

使用requires-channel="https"

<http>
  <intercept-url pattern="/**" requires-channel="https" />
</http>

如果使用的非标准端口提供port-mappings

<http>
  <intercept-url pattern="/**" requires-channel="https" />
  <port-mappings>
    <port-mapping http="80" https="443" />
    <port-mapping http="9080" https="9443" />
  <port-mappings>
</http>