首页 > 其他分享 >rememberMe功能

rememberMe功能

时间:2023-01-17 16:55:53浏览次数:35  
标签:功能 http Autowired private rememberMe html mysql login

1.引入依赖

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

<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.1.1</version>
</dependency>

2.配置文件

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1/security?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    username: root
    password: 

3.配置类

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private MyAccessDeniedHandler myAccessDeniedHandler;

    @Autowired
    private DataSource dataSource;

    @Autowired
    private PersistentTokenRepository persistentTokenRepository;

    @Autowired
    private UserDetailsService userDetailsService;

    @Bean
    public PasswordEncoder getPassword(){
        return new BCryptPasswordEncoder();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.formLogin()
                .loginPage("/login.html")
                .loginProcessingUrl("/login")
                .successForwardUrl("/toIndex")
                .failureForwardUrl("/toError");
                
        http.authorizeRequests()
                .antMatchers("/css/**","js/**","**/*.png").permitAll()
                .antMatchers("/login.html").permitAll()
                .antMatchers("/error.html").permitAll()
                .anyRequest().authenticated();

        http.rememberMe()
                //设置数据源
                .tokenRepository(persistentTokenRepository)
//                .rememberMeParameter()
                //默认俩周
                .tokenValiditySeconds(60)
                .userDetailsService(userDetailsService);

        http.csrf().disable();
    }

    @Bean
    public PersistentTokenRepository persistentTokenRepository(){
        JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl();
        //设置数据源
        jdbcTokenRepository.setDataSource(dataSource);
        //自动建表 第一次使用 第二次报错
        jdbcTokenRepository.setCreateTableOnStartup(true);
        return jdbcTokenRepository;
    }
}

4.login.html

<body>
    <form action="/login" method="post">
        Username : <input type="text" name="username"><br>
        Password : <input type="password" name="password"><br>
        Remermber me : <input type="checkbox" name="remember-me" value="true">
        <input type="submit" value="login">
    </form>
</body>

标签:功能,http,Autowired,private,rememberMe,html,mysql,login
From: https://www.cnblogs.com/lwx11111/p/17058176.html

相关文章

  • Jmeter如何使用jp@gc - WebDriver Sampler做功能GUI自动化测试
    随着Jmeter的版本不断迭代更新,尤其是其插件。Jmeter不仅可以完成性能测试、接口测试,而且可以依靠jp@gc-WebDriverSampler来完成GUI的功能自动化测试了。1.jmeter的安装......
  • JNPF流程审批加签功能讲解
    JNPF快速开发平台3.4.5大版本虽然已经上线近两个月,相信大家也都在我们产品官网试用体验了新版本,这是一个功能更加强大、用户体验更加顺畅的新版本,但同样的由于版本变动较大......
  • vue项目导出功能_前端导出Excel_Export2Excel.js
    VUE项目导出功能_前端导出Excel_Export2Excel.jsvue项目利用插件直接进行excel生成。1.安装依赖[email protected]......
  • API 网关的功能用途及实现方式
    1.API网关诞生背景前言API经济生态链已经在全球范围覆盖,绝大多数企业都已经走在数字化转型的道路上,API成为企业连接业务的核心载体,并产生巨大的盈利空间。快速增长......
  • 视频直播美颜sdk趣味功能的实现流程
    当下,随着直播、短视频等视频社交平台的进一步普及,大家已经逐渐无法离开这种新型的社交娱乐方式,其中一大部分原因是因为美颜sdk的加入,无论是强大的美颜功能,还是趣味拍摄方案,......
  • 解决Enable-WindowsOptionalFeature : 功能名称 Microsoft-Hyper-V 未知。
    将下面内容复制到文本文件中,然后将文件命名为Hyper-V.cmd,然后以管理员身份运行即可,运行完成后重启电脑。pushd"%~dp0"dir/b%SystemRoot%\servicing\Packages\*Hyper-V*.m......
  • API 网关的功能用途及实现方式
    1.API网关诞生背景前言API经济生态链已经在全球范围覆盖,绝大多数企业都已经走在数字化转型的道路上,API成为企业连接业务的核心载体,并产生巨大的盈利空间。快速增长......
  • 华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!
    华为运动健康服务(HUAWEIHealthKit)6.9.0版本新鲜出炉啦!一文了解新增功能,快来一起加入HealthKit生态大家庭!一、更丰富:睡眠呼吸记录健康数据开放呼吸机是用于为患者提供......
  • 华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!
    华为运动健康服务(HUAWEIHealthKit)6.9.0版本新鲜出炉啦!一文了解新增功能,快来一起加入HealthKit生态大家庭!一、更丰富:睡眠呼吸记录健康数据开放呼吸机是用于为患者提供......
  • 2、功能函数
    函数基础基础知识场景需求 在shell脚本的编写过程中,我们经常会遇到一些功能代码场景:多条命令组合在一起,实现一个特定的功能场景逻辑、一些命令在脚本内部的多个位置频繁......