Spring 登录管理

登录管理

	@Override
	protected void configure(HttpSecurity http) throws Exception {
		http.authorizeRequests().antMatchers("/login").permitAll()// 这些资源放行 只放行登录页面
				.anyRequest().authenticated()// 其它资源要身份认证
				.and().formLogin().loginPage("/login")// 登录页面
				.defaultSuccessUrl("/index")// 登录成功后跳转到/index 主页
				.failureUrl("/login?error")// 登录失败再跳转到登录页面
				.permitAll()// 登录页面放行
				.and().logout().permitAll() //退出请求放行
				.and().rememberMe().tokenRepository(tokenRepository())//设置token 记住密码 记住登录凭证
				.and().sessionManagement().maximumSessions(1).expiredUrl("/login?timeout");// 退出请求放行
	}

登录验证

	@Override
	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
		auth
        .jdbcAuthentication()//读取数据库用户,权限,角色然后放到内存里验证
            .dataSource(dataSource);
	}

加密方法

	@Bean
	//加密方法
	public Argon2PasswordEncoder passwordEncoder() {
		Argon2PasswordEncoder encoder = new Argon2PasswordEncoder();
		return encoder;
	};

设置登录凭证

	@Bean
	public PersistentTokenRepository tokenRepository() {
		JdbcTokenRepositoryImpl jdbcTokenRepositoryImpl = new JdbcTokenRepositoryImpl();
		jdbcTokenRepositoryImpl.setDataSource(dataSource);
		return jdbcTokenRepositoryImpl;
	}

  

原文地址:https://www.cnblogs.com/max-hou/p/13497385.html