ホームページ  >  記事  >  Java  >  SpringBootセッションでセッションタイムアウトを設定する方法

SpringBootセッションでセッションタイムアウトを設定する方法

WBOY
WBOY転載
2023-05-15 14:37:062252ブラウズ

問題の発見

スプリングブート プロジェクトではセッションアウト タイムアウトの問題が発生します。問題の説明:

application.yaml を変更してテスト環境でセッションアウトを構成し、セッションを確認します。 out 設定が有効になったため、有効期限が直接 8 時間に設定され、運用環境にリリースされました。しかし、正午にお客様から、プロジェクトの有効期限が短く設定されているため、30分操作がないとセッションが期限切れになり、再度ログインが必要になるというフィードバックをいただきました。

解決策

開発環境: springboot プロジェクトには Tomcat が組み込まれているため、プロジェクト内の application.yaml で設定されたセッションアウトが有効です。

本番環境: 本番環境はクラウドサービス(Docker K8s)とDockerを利用してイメージを構築しますが、基本イメージtomacatのweb.xmlのセッションアウトは30分に設定されています。

解決策: 最後に、Docker がイメージをビルドするときに、変更した web.xml を DockerFile に配置し、ベース イメージの元の web.xml を上書きし、イメージを再度ビルドして、イメージの web.xml を正常に置き換えます。元のベースイメージ 問題 最終的には解決されました。

セッションの無効化: ユーザーがログインした時点からセッションを作成します。ユーザーがセッションアウト設定時間を超えて操作を停止すると、セッションは期限切れになります。

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 を DockerFile にコピー

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

以上がSpringBootセッションでセッションタイムアウトを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。