SpringSecurity6(认证-前后端分离)

1.环境

SpringBoot3.2.8、JDK17、SpringSecurity6.1.11、Redis6.0.8

认证涉及:

  1. 验证码过滤器及用户名密码认证
  2. 密码加密及密码自动升级更新
  3. 记住我
  4. 并发会话
  5. 会话存储
  6. csrf防护
  7. cros跨域(未配置,有兴趣自行实现)
  8. 统一异常处理

2.pom

<parent>
  <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.8</version>
</parent>

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>


<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-thymeleaf</artifactId>-->
<!--        </dependency>-->

        <!--springboot3.0接入mybatisPlus的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.5</version>
        </dependency>
       
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.51</version>
        </dependency>
        
        <!--redis会话存储相关-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
            <version>3.2.4</version>
        </dependency>

    </dependencies>

3.application.yml

server:
  port: 8080
  servlet:
    session:
      timeout: 30

spring:
  security:
    user:
      name: root
      password: 123456
  thymeleaf:
    cache: false
    prefix: classpath:/templates/
    suffix: .html
  datasource:
    url: jdbc:mysql://192.168.159.100:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    hikari:
      # 最大连接池数量
      maximum-pool-size: 20
      # 最小空闲线程数量
      minimum-idle: 10
      # 配置获取连接等待超时的时间
      connectionTimeout: 30000
      # 校验超时时间
      validationTimeout: 5000
      # 空闲连接存活最大时间,默认10分钟
      idleTimeout: 600000
      # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
      maxLifetime: 1800000
      # 连接测试query(配置检测连接是否有效)
      connectionTestQuery: SELECT 1
    type: com.zaxxer.hikari.HikariDataSource
  data:
    redis:
      port: 6379
      host: 192.168.159.100
logging:
  level:
    org:
      springframework:
        security: TRACE

mybatis-plus:
  mapper-locations: classpath:com.linging.mapper/*Mapper.xml

4.SpringSecurity6主配置类

@Configuration
@EnableWebSecurity // 高版本使用注解
@EnableRedisIndexedHttpSession  // 注入FindByIndexNameSessionRepository,实现redis持久化会话
public class SecurityConfig {
   
   

    @Resource
    private MyUserDetailService myUserDetailService;

    @Resource
    private DataSource dataSource;

    @Resource
    private FindByIndexNameSessionRepository
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值