2011-08-02 74 views
3

我正在尝试使用https。仅在使用SSL进行登录时使用SSL仅限于在登录期间使用https登录时

问题是,当应用程序试图从https切换到http时,我最终被重定向到登录窗体(就像会话被破坏一样)。

这里是我使用的配置:

<s:http auto-config="true" access-denied-page="/erro-403" 
    create-session="never"> 

    <s:port-mappings> 
     <s:port-mapping http="8080" https="8443" /> 
    </s:port-mappings> 

    <s:intercept-url pattern="/preferencias" access="IS_AUTHENTICATED_REMEMBERED" 
     requires-channel="http" /> 
    <s:intercept-url pattern="/admin/**" access="ROLE_SIPAS_ADMIN" 
     requires-channel="http" /> 
    <s:intercept-url pattern="/area-prestador/**" 
     access="ROLE_SIPAS_PRESTADOR, ROLE_SIPAS_ATENDENTE, ROLE_SIPAS_ADMIN" 
     requires-channel="http" /> 


    <s:intercept-url pattern="/**" 
     access="IS_AUTHENTICATED_ANONYMOUSLY,IS_AUTHENTICATED_REMEMBERED" 
     requires-channel="https" /> 

    <s:form-login login-page="/login" default-target-url="/" 
     authentication-failure-url="/login-error" always-use-default-target="false" /> 
    <s:logout logout-url="/logout" logout-success-url="/" /> 

    <s:remember-me /> 
</s:http> 

<s:authentication-manager> 
    <s:authentication-provider user-service-ref="authenticationMBean"> 
     <s:password-encoder hash="md5" base64="true" /> 
    </s:authentication-provider> 
</s:authentication-manager> 

是我发现的唯一的解决方法是检查记得,我的选择。

任何想法我做错了什么?

回答

2

虽然已经很长时间了这个问题发布了,我相信作者必须已经找到了解决方案,我发布这个答案供将来参考。

此问题在Spring Security FAQs中讨论。快速解决方案是将此元素添加到您的s:http元素中:

<s:session-management session-fixation-protection="none"/> 
+0

它为我工作。 :( – hiway