zoukankan      html  css  js  c++  java
  • springsecurity-查询数据库认证

      核心代码如下:

    @Service
    public class MyUserDatailService implements UserDetailsService {
    
        @Autowired
        private UsersMapper usersMapper;
    
        @Override
        public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    
            QueryWrapper<Users> wrapper = new QueryWrapper<>();
    
            wrapper.eq("username", username);
    
            Users users = usersMapper.selectOne(wrapper);
    
            if(users == null){
                throw new UsernameNotFoundException("用户不存在");
            }
    
            List<GrantedAuthority> auths = AuthorityUtils.commaSeparatedStringToAuthorityList("role");
    
            return new User(users.getUsername(), new BCryptPasswordEncoder().encode(users.getPassword()),auths);
        }
    }
    @Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Autowired
        private UserDetailsService userDetailsService;
    
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    
            auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
        }
    
        @Bean
        public BCryptPasswordEncoder bCryptPasswordEncoder(){
    
            return new BCryptPasswordEncoder();
        }
    }

       其实通过在loadUserByUsername()的代码我们可以知道,不需要我们亲手去校验表单的用户名和密码和数据库的是否一样,我们只需要在该方法里,查询数据库的用户信息,把他交给springsecurity就行了。

  • 相关阅读:
    工具类网站收藏
    NodeJS 后端 解决 OPTIONS 请求 404 (Not Found)
    Linux scp 指令
    API及工具类页面链接
    JavaScript正则
    Git 常用
    React组件属性类型(propTypes)
    Meta http-equiv属性详解(转)
    js 刷新页面window.location.reload();
    XHTML标签的嵌套规则分析
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/14366114.html
Copyright © 2011-2022 走看看