Table des matières
1. Ajoutez les dépendances pertinentes à pom.xml :
2. Ajoutez la configuration à application.yml :
La configuration pertinente de la sécurité Spring n'est pas répertoriée ici.
1. Ajoutez les dépendances pertinentes à pom.xml :
Ajoutez deux dépendances : dépendance à Redis et Redis comme cache de session
<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. Ajoutez la configuration à 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. Testez
En principe, démarrez simplement la classe de démarrage Springboot directement et vous pourrez l'utiliser normalement.
1) connexion test facteur :
2) Vérifiez les espèces Redis et les enregistrements de session enregistrés :
4. Enregistrement des pièges : si la configuration ci-dessus est bonne, vous rencontrerez l'erreur suivante
Exception rencontrée lors de l'initialisation du contexte - annulation de la tentative d'actualisation : org.springframework.beans.factory.BeanCreationException : erreur lors de la création du bean portant le nom "org.springframework.boot.autoconfigure.session.SessionAutoConfiguration$ServletSessionRepositoryValidator" : l'appel de la méthode init a échoué ; l'exception imbriquée est org.springframework.boot.autoconfigure.session.SessionRepositoryUnavailableException : aucun référentiel de session n'a pu être configuré automatiquement, vérifiez votre configuration (le type de magasin de session est "redis")
Cela est dû à la nouvelle version possible de Springboot (ma version actuelle est 2.5.3 ), vous devez ajouter une instruction sur la classe de démarrage principale : @EnableRedisHttpSession.
(Dans la version précédente 2.1.4.RELEASE, cela prendra effet automatiquement s'il n'est pas ajouté).
J'ai configuré ici le délai d'expiration de la session sur 1 heure. La propriété native server.session.timeout ne prend plus effet.
@SpringBootApplication
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800 * 2 )
public class AuthApplication {
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class,args);
}
}