[英]spring security: http if user not authenticate
我正在使用Spring 3.2 + primefaces 3.5 + hibernate 4.1.9安全上下文是:
<http auto-config='false' use-expressions="true" > <intercept-url pattern="/**/login" access="permitAll" requires-channel="https"/> <intercept-url pattern="/**/registration" access="permitAll" requires-channel="https" /> <intercept-url pattern="/**/cart" access="permitAll" requires-channel="https" /> <intercept-url pattern="/**/cart/**" access="hasAnyRole('USER','ADMIN')" requires-channel="https" /> <intercept-url pattern="/pages/adm/**" access="hasRole('ADMIN')" requires-channel="https" /> <intercept-url pattern="/*/account**" access="hasAnyRole('USER','ADMIN')" requires-channel="https" /> <intercept-url pattern="/**" requires-channel="any" /> <form-login login-page="/loginRedirect" authentication-failure-handler-ref="pennyUrlAuthenticationFailureHandler" authentication-success-handler-ref="pennyAuthSuccessHandler" default-target-url="/pages/account/orders.xhtml" /> <logout logout-success-url="/" invalidate-session="true"/> </http>
如果我轉到需要HTTPS的頁面,則在會話的其余部分中,即使用戶未通過身份驗證,它也會使用HTTPS協議。 如果我訪問https:// mystite / en / cart,HTTPS將用於所有瀏覽會話。
我不想永遠將HTTPS切換為HTTP,僅當用戶未通過身份驗證時才可以。 我可以對未經身份驗證的用戶強制使用HTTP嗎?
如果我轉到需要HTTPS的頁面,則在會話的其余部分中,即使用戶未通過身份驗證,它也會使用HTTPS協議。
這是正確的,因為
<intercept-url pattern="/**/cart/**" access="hasAnyRole('USER','ADMIN')" requires-channel="https" />
另外,由於
<intercept-url pattern="/**" requires-channel="any" />
一旦用戶請求了需要HTTPS的資源,它將堅持使用HTTPS。 如果您說了any
(HTTPS和其他一樣好),為什么還要切換回去?
我可以對未經身份驗證的用戶強制使用HTTP嗎?
不,不是我所知道的。 就個人而言,我也不認為這很有道理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.