SpringBoot集成SpringSecurity(十记住我)

Posted 伍妖捌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot集成SpringSecurity(十记住我)相关的知识,希望对你有一定的参考价值。

前言

前面介绍了设置用户最大登录数,这节实现记住我功能。

配置数据库

记住我需要用到数据库,所以这里先配置以下Mysql数据库
添加依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

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

添加配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    username: root
    password: 123456

实现

依旧在SpringSecurityConfig中添加以下代码

	@Autowired
    private DataSource dataSource;

    @Bean
    JdbcTokenRepositoryImpl jdbcTokenRepository() {
        JdbcTokenRepositoryImpl repository = new JdbcTokenRepositoryImpl();
        repository.setDataSource(dataSource);
//        repository.setCreateTableOnStartup(true);
        return repository;
    }

repository.setCreateTableOnStartup(true); 在项目启动时,创建表

添加记住我配置

http.rememberMe()
	.tokenRepository(jdbcTokenRepository())
	.tokenValiditySeconds(60 * 60 * 24 * 7);

tokenValiditySeconds(60 * 60 * 24 * 7); token有效时长

验证

启动项目,发现数据库中表已经创建完成
在这里插入图片描述
在浏览器输入http://localhost:8080,选择记住我
在这里插入图片描述
登录成功之后,查看数据库,记住我的信息已经成功存入数据库。
在这里插入图片描述
紧接着,重新启动项目,访问http://localhost:8080/admin,发现访问成功
在这里插入图片描述
记住我功能已经实现。

以上是关于SpringBoot集成SpringSecurity(十记住我)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot项目启动后访问任意接口都会跳转到一个莫名其妙的login登录页面

SpringSecurity解决跨域问题,在SpringBoot整合SprinSecurity中如何用前后端分离Ajax登录,Ajax登录返回状态200还是近error

001.camunda入门(springboot集成篇)

在邮递员上发布请求但不在浏览器中(代码状态:415) - Spring Boot,thymeleaf

springboot集成ES,以及应用

SpringBoot集成Kafka