springsecurity + partage de session + connexion utilisateur Redis, vérification des autorisations,

Table des matières

1. Ajoutez les dépendances pertinentes à pom.xml :

2. Ajoutez la configuration à application.yml :

3. Testez

4. Enregistrement des pièges : si la configuration ci-dessus est bonne, vous rencontrerez l'erreur suivante


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);
    }
}


 

Je suppose que tu aimes

Origine blog.csdn.net/louis_lee7812/article/details/127436264
conseillé
Classement