https在default-target-url spring security中

Sal*_*cis 9 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"/>
Run Code Online (Sandbox Code Playgroud)

不工作的代码:

<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"/> 
Run Code Online (Sandbox Code Playgroud)

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

作为参考,问题是交叉发布@ Code ranch PS:我可以在TargetUrlResolver帮我配置吗?

Pra*_*ate 6

使用 requires-channel="https"

<http>
  <intercept-url pattern="/**" requires-channel="https" />
</http>
Run Code Online (Sandbox Code Playgroud)

如果使用非标准端口提供 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>
Run Code Online (Sandbox Code Playgroud)