前提・実現したいこと
SpringBoot学習中の者です。
SpringSessionを使い、セッション情報を外部(Redis)へ切り出しています。
Cookieの生存時間が気になったことがあったので、質問をさせていただきました。
① Cookieの生存時間を定義して、ブラウザでCookie確認
- コード
Java
1@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60) // Sessionのタイムアウト時間 2public class SessionAndCookieConfig { 3 4 @Bean 5 public CookieSerializer cookieSerializer() { 6 DefaultCookieSerializer serializer = new DefaultCookieSerializer(); 7 serializer.setCookieMaxAge(60); // Cookieの生存時間 8 return serializer; 9 }
- ブラウザ
Expires / Max-Ageが設定されました。
※ちなみになのですが、この時間表記ってどう読めばいいのでしょうか...??org
② Cookieの生存時間を定義しないで、ブラウザでCookie確認
- コード
Java
1@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 60) // Sessionのタイムアウト時間 2public class SessionAndCookieConfig { 3 4 // Cookieの生存時間を設定していた個所は削除 5 6} 7
- ブラウザ
Expires / Max-Age のnameが 「Session」 に。
もはや時間表記ではない...!
まとめ
というような現象が発生しております。
Cookieの生存時間を設定しない場合、Expires / Max-Ageが「Session」になりましたので、Spring側でよしなにやっているのかな...? セッションタイムアウトの時間と合わせてくれているのかな...? なんて想像した次第です。
お詳しい方いらっしゃいましたら、何卒よろしくお願い致します<(_ _)>
なお、設定した60秒を経過してブラウザを更新すると、Spring側でログイン処理を入れているのですが、ログアウト状態になるのでセッションは破棄されています。
ただし、Cookieは残り続けるようです。
あなたの回答
tips
プレビュー