您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SpringSecurity连接数据库

bubuko 2022/1/25 19:54:56 java 字数 6812 阅读 1039 来源 http://www.bubuko.com/infolist-5-1.html

一.创建 需要在之前SpringSecurity的基础上添加数据库依赖 二.根据数据库创建用户角色类和用户实体类 角色类 public class Role { private Long id; private String name; private String nameZh; //省略 get ...

一.创建

  需要在之前SpringSecurity的基础上添加数据库依赖

二.根据数据库创建用户角色类和用户实体类

  角色类

public class Role {  private Long id;
    private String name;
    private String nameZh;
    //省略 getter/setter
}

  用户实体类

public class User implements UserDetails {
    private Long id;
    private String username;
    private String password;
    private boolean accountNonExpired;    //账户是否没有过期
    private boolean accountNonLocked;     //账号是否没有被锁
    private boolean credentialsNonExpired;   //密码是否没有过期
    private boolean enabled;                //账号是否可用
    @ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.PERSIST)
    private List<Role> roles;     //User 和 Role 是多对多关系,用一个 @ManyToMany 注解来描述。
    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        List<SimpleGrantedAuthority> authorities = new ArrayList<>();
        for (Role role : getRoles()) {
            authorities.add(new SimpleGrantedAuthority(role.getName()));
        }
        return authorities;
    }
    @Override
    public String getPassword() {
        return password;
    }

    @Override
    public String getUsername() {
        return username;
    }

    @Override
    public boolean isAccountNonExpired() {
        return accountNonExpired;
    }

    @Override
    public boolean isAccountNonLocked() {
        return accountNonLocked;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return credentialsNonExpired;
    }

    @Override
    public boolean isEnabled() {
        return enabled;
    }
    //省略其他 get/set 方法
}

 

三.使用

  

@Service
public class SsoUserDetailsService implements UserDetailsService {

    @Autowired
    UserMapper userMapper;    //使用mybatis操作数据库
   
    @Override
    public UserDetails loadUserByUsername(String name) throws UsernameNotFoundException {
       
        User user= userMapper.loadUserByName(name);
        if (user== null) {
            throw new UsernameNotFoundException("用户名不存在!");
        }
        return user;
    }
}

 

四.配置

  1.application.properties 中配置一下数据库

  2.在继承了 WebSecurityConfigurerAdapter类的类中添加如下代码

@Autowired
UserService userService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(userService);
}

 

SpringSecurity连接数据库

原文:https://www.cnblogs.com/xp0813/p/12779477.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶