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中文網其他相關文章!