首頁 >Java >java教程 >SpringBoot Session怎麼設定會話超時

SpringBoot Session怎麼設定會話超時

WBOY
WBOY轉載
2023-05-15 14:37:062267瀏覽

問題發現

springboot專案生產session-out逾時問題,描述下問題:

在測試環境透過改動application.yaml配置session-out,經過設定不同時間驗證session- out配置生效,於是直接設定了過期時間為8小時發佈到了生產環境。然而中午接到客戶反應項目過期時間設定較短,半小時不操作 就會話過期需要反覆登陸。

解決處理

開發環境:springboot專案內建Tomcat,所以專案中application.yaml設定session-out是生效的。

生產環境:生產環境發布是透過雲端服務(Docker K8s)透過Docker建構鏡像方式,然而基礎鏡像tomacat的web.xml中的session-out是設定的30分鐘。

解決想法:最終在Docker建置映像時,將修改後的web.xml放入DockerFile中,覆寫基礎映像原web.xml,再次建置映像成功取代原基礎映像的web.xml,問題最終得以解決。

seesion失效:從使用者登陸開始建立一個 session,當使用者停止操作時間大於session-out設定時間則會話過期。

1.在工程的web.xml中設定

[html] view plain copy<!-- 时间单位为分钟   -->  <session-config>
      <session-timeout>15</session-timeout></session-config>

2.在web容器中設定(此處以tomcat為例)

[html] view plain copy  <!-- ==================== Default Session Configuration ================= -->  
  <!-- You can set the default session timeout (in minutes) for all newly   -->  
  <!-- created sessions by modifying the value below.    -->  
	<session-config>  
        <session-timeout>30</session-timeout>  
	</session-config>

3.透過Java程式碼設定

session.setMaxInactiveInterval(30*60);//以秒为单位

4.springboot專案application.yaml設定

server:
   port: 8089
   session:
      timeout: 1800  #以秒为单位

5.將web.xml copy到DockerFile

COPY ./web.xml /opt/tpapp/tomcat/conf

以上是SpringBoot Session怎麼設定會話超時的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除