啓用https後,登錄後cookie改變導致自動登出的問題

有一個jsp+servlet 架構的項目,發佈到外網後,直接在tomcat部署ssl證書後發現,每次登錄校驗成功之後,請求到首頁後,cookie的JSESSIONID改變,隨即登出。

tomcat的server.xml配置如下:

<Connector port="8453" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/u01/apache-tomcat-7.0.94/conf/cert/xxx.com.cn.pfx"
               keystoreType="xx"
               keystorePass="xxx"
               clientAuth="false" sslProtocol="TLS" />

在tomcat的web.xml配置cookie後,問題解決:即啓用了https的cookie

<session-config>
        <session-timeout>30</session-timeout>
		<cookie-config>
            <secure>true</secure>
            <http-only>true</http-only>
         </cookie-config>
    </session-config>

理論上,不配置secure爲true,在http和https下cookie都應該可以正常創建,因此具體原因待查。但目前這種配置可以解決。

 

另外相同的項目在nginx下,

用nginx配置ssl證書,

不帶項目名稱(將項目作爲root)可以正常登錄;

帶項目名稱就會出現相同的問題,登錄後cookie改變,無法獲取session自動登出。

而另外一個spring boot的項目打的war包則完全正常。

具體原因也待查找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章