目次
4. 落とし穴記録: 上記の構成が適切である場合、次のエラーが発生します。
Spring Security の関連構成はここにはリストされていません。
1. 関連する依存関係を pom.xml に追加します。
2 つの依存関係を追加します: Redis への依存とセッション キャッシュとしての Redis
<dependencies>
...
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 引用SpringSession,同时使用Redis存储缓存数据 -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
</dependencies>
2. application.yml に構成を追加します。
server:
session:
cookie:
name: MYJSESSIONID #可以修改自己定义session名
spring:
session:
store-type: redis #使用使用Redis缓存session数据
redis: #Redis服务器相关配置
host: 127.0.0.1
port: 6379
database: 0
timeout: 1800000
lettuce:
pool:
max-active: 20
max-wait: -1
max-idle: 8
min-idle: 0
3. テスト
原則として、springboot スタートアップ クラスを直接起動するだけで、通常どおり使用できます。
1) 郵便配達員のテスト ログイン:
2) Redis の種類と保存されたセッション記録を確認します。
4. 落とし穴記録: 上記の構成が適切である場合、次のエラーが発生します。
コンテキストの初期化中に例外が発生しました - 更新試行のキャンセル: org.springframework.beans.factory.BeanCreationException: 'org.springframework.boot.autoconfigure.session.SessionAutoConfiguration$ServletSessionRepositoryValidator' という名前の Bean 作成エラー: init メソッドの呼び出しに失敗しました。ネストされた例外はorg.springframework.boot.autoconfigure.session.SessionRepositoryUnavailableException:セッション リポジトリを自動構成できません。構成を確認してください (セッション ストア タイプは「redis」です)。
これは、新しい springboot バージョンが考えられるためです (私の現在のバージョンは 2.5.3 です) )、メインのスタートアップ クラスにステートメントを追加する必要があります: @EnableRedisHttpSession。
(以前のバージョン 2.1.4.RELEASE では、追加しなくても自動的に有効になります)。
ここではセッションの有効期限を 1 時間に設定しました。ネイティブのserver.session.timeoutプロパティは無効になりました。
@SpringBootApplication
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800 * 2 )
public class AuthApplication {
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class,args);
}
}