2010-02-09 53 views
9

我們在我們的系統中使用彈簧安全,我們的服務器使用https方案。https在default-target-url彈簧安全

但是,該應用程序運行在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"/> 

有什麼辦法說: 重定向到URL與/SuccessLogin.jsp結束,但使用https協議?

作爲參考,問題是交叉發佈@Code ranch PS:我可以TargetUrlResolver幫我在配置?

回答

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> 
+0

不知道怎麼這會有所幫助。如果apache終止SSL,那麼應用程序將*總是*接收http上的請求,而不是https。不要添加require-channel =「https」'會導致重定向循環? – Qwerky 2012-04-05 11:02:26