SpringSecurity中web权限方案

web权限方案

设置登录的用户名和密码(用户认证)

  1. 通过配置文件(application.properties)
	spring.security.user.name = csear
	spring.security.user.password = 123456
  1. 通过配置类
	@Configuration
//继承WebSecurityConfigurerAdapter类
public class SecurityConfig extends WebSecurityConfigurerAdapter {
   

    //重写configure方法
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
   
        //密码加密
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        String password = passwordEncoder.encode("666666");
        //设置登录的用户名和密码
        auth.inMemoryAuthentication().withUser("cesar").password(password).roles("admin");
    }
    //如果直接运行以上代码 在输入密码时,console会出现java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"的错误
    //这是因为需要实现PasswordEncoder接口
    @Bean
    PasswordEncoder password(){
   
        return new BCryptPasswordEncoder();
    }
}

第二种方式不实用,因此开发中需要采用第三种方式自定义编写实现类

  1. 自定义编写实现类
    第一步编写配置类
	@Configuration
public class SecurityConfigNew extends WebSecurityConfigurerAdapter {
   
    @Autowired
    private UserDetailsService userDetailsService;
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
   
        auth.userDetailsService(userDetailsService).passwordEncoder(password());
    }
    @Bean
    PasswordEncoder password(){
   
        return new BCryptPasswordEncoder();
    }
}

第二步 编写UserDetailsService实现类

@Service("userDetailsService")
public class MyUserDetailsService implements UserDetailsService {
   
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
   
        List<GrantedAuthority> auths = AuthorityUtils.commaSeparatedStringToAuthorityList("role");
        return new User("mary",new BCryptPasswordEncoder().encode("666666"),auths);
    }
}

查询数据库完成认证

  1. 第一步整合mybatis-plus
       <!--    mybatis-plus   -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值