SpringBoot MVC /セキュリティアプリ1.2.2.RELEASEを作成し、application.propertiesに次のようなサーバー設定が含まれています
#Tomcat port and contextPath details
server.port=8080
server.contextPath=/test
#server.session-timeout=120
server.sessionTimeout=120
ドキュメント の状態
server.session-timeout= # session timeout in seconds
ServerProperties.Java はsessionTimeoutを使用します。
私が提示したapplication.propertiesコードを見ると、私は独立して一緒に試してみましたが、2分後にタイムアウトにならず、セッションハンドリングを実行するために明示的に記述された他のコードはありません。
誰かがこの問題に遭遇しましたか?何が欠けているか、間違っていますか?
どういうわけか設定だけはわかりません
server.session.timeout=120
ただし、セッションタイムアウトとCookieの最大経過時間の両方を次のように設定すると、うまくいきませんでした。
server.session.cookie.max-age=120
server.session.timeout=120
それは完全に機能します
このserver.session.timeoutの目的がわからないので、特定の数値に設定してセッションの作成を監視しても、セッションの有効期限は変更されません。
私は春のセッションとredisの統合を使用していますが、私の場合、maxInactiveIntervalInSecondsを120(秒)のように設定する必要があります。これは、redisHttpSessionConfigurationを使用して行うことができます。
セッションを探すためにredisに行くと、有効期限が120秒に変更され、セッションタイムアウトが機能していることがわかります。
私の提案の1つは、プログラムで、またはプロパティファイルでセッションのmaxInactiveIntervalInSeconds(または同様のもの)を構成して、セッションの変更を監視できるかどうかを確認することです。
(これは、この記事の執筆時点のSpring 1.5.xに適用されます)
Redisセッション@EnableRedisHttpSessionを使用している場合(他のコメント @ Phoebe Liの場合 など)、アプリケーションプロパティserver.sessionは適用されません。次のようなコードで手動で設定する必要があります。
@EnableRedisHttpSession
public class HttpSessionConfig {
@Bean
public RedisOperationsSessionRepository sessionRepository(RedisConnectionFactory factory) {
RedisOperationsSessionRepository sessionRepository = new RedisOperationsSessionRepository(factory);
//Set the TTL of redis' key, which in turn will expire session when TTL is reached
sessionRepository.setDefaultMaxInactiveInterval(15); //e.g. 15 seconds
return sessionRepository;
}I
}
Spring Boot 2アプリのapplication.yml
# A negative value means that the cookie is not stored persistently and will be deleted when the Web browser exits
server:
servlet:
session:
cookie:
max-age: -1
timeout: -1
これらの設定により、JSESSIONID
Cookieの有効期限は「ブラウジングセッションが終了するとき」に設定されます。
この両方のステートメントを追加してみてください。
server.session.cookie.max-age=120
server.session.timeout=120
ここに私のブログで完全な例を見つけることができます: http://www.onlinetutorialspoint.com/spring-boot/how-to-set-spring-boot-Tomcat-session-timeout.html