标签:and pass com page spring 文件加密 自动 erb col
即使没有任何网站登录验证功能编码基础的人,也能想出下面的这个功能需求:
1. AuthenticationManagerBuilder 身份验证管理器生成器(那意思就是:生成一个身份验证管理器)
2. BCryptPasswordEncoder 密码编码器(BCrypt跨平台文件加密工具,BCryptPasswordEncoder就是一种加密手法)
3.inMemory在内存中
@Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { /** * 在内存中创建一个名为 "user" 的用户,密码为 "pwd",拥有 "USER" 权限,密码使用BCryptPasswordEncoder加密 */ auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()) .withUser("user").password(new BCryptPasswordEncoder().encode("pwd")).roles("USER"); /** * 在内存中创建一个名为 "admin" 的用户,密码为 "pwd",拥有 "USER" 和"ADMIN"权限 */ auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()) .withUser("admin").password(new BCryptPasswordEncoder().encode("pwd")).roles("USER","ADMIN"); }
4.permitAll():允许所有用户访问,不需要任何权限
authorize:授权;批准 authorizeRequests()授权请求
/** * 匹配 "/","/index" 路径,不需要权限即可访问 * 匹配 "/user" 及其以下所有路径,都需要 "USER" 权限 * 匹配 "/admin" 及其以下所有路径,都需要 "ADMIN" 权限 * 登录地址为 "/login",登录成功默认跳转到页面 "/user" * 退出登录的地址为 "/logout",退出成功后跳转到页面 "/login" */ @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/","/index","/error").permitAll() .antMatchers("/user/**").hasRole("USER") .antMatchers("/admin/**").hasRole("ADMIN") .and() .formLogin().loginPage("/login").defaultSuccessUrl("/user") .and() .logout().logoutUrl("/logout").logoutSuccessUrl("/login"); }
5.
完整代码:
/** * Author: wxb * Project: spring_security_example * Create Date: 2018/10/18 * Create Time: 17:36 * Description: Security 配置类 */ @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { /** * 在内存中创建一个名为 "user" 的用户,密码为 "pwd",拥有 "USER" 权限,密码使用BCryptPasswordEncoder加密 */ auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()) .withUser("user").password(new BCryptPasswordEncoder().encode("pwd")).roles("USER"); /** * 在内存中创建一个名为 "admin" 的用户,密码为 "pwd",拥有 "USER" 和"ADMIN"权限 */ auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()) .withUser("admin").password(new BCryptPasswordEncoder().encode("pwd")).roles("USER","ADMIN"); } /** * 匹配 "/","/index" 路径,不需要权限即可访问 * 匹配 "/user" 及其以下所有路径,都需要 "USER" 权限 * 匹配 "/admin" 及其以下所有路径,都需要 "ADMIN" 权限 * 登录地址为 "/login",登录成功默认跳转到页面 "/user" * 退出登录的地址为 "/logout",退出成功后跳转到页面 "/login" */ @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/","/index","/error").permitAll() .antMatchers("/user/**").hasRole("USER") .antMatchers("/admin/**").hasRole("ADMIN") .and() .formLogin().loginPage("/login").defaultSuccessUrl("/user") .and() .logout().logoutUrl("/logout").logoutSuccessUrl("/login"); } }
1
标签:and pass com page spring 文件加密 自动 erb col
原文地址:https://www.cnblogs.com/xc-xinxue/p/12500211.html