Spring Security用户定义

网友投稿 278 2022-08-27


Spring Security用户定义

目录一、基于内存二、基于mybatis

基于内存的和基于数据库的,下面我给大家简单介绍一下这两种方式。

一、基于内存

Spring Security中的配置:

@Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {

InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();

manager.createUser(User.withUsername("admin").password(XZEjZsS"{noop}123").roles("admin").build());

manager.createUser(User.withUsername("sang").password("{noop}123").roles("user").build());

auth.userDetailsService(manager);

}

二、基于mybatis

MyUserDetailsService

@Service

public class MyUserDetailsService implements UserDetailsService {

@Autowired

UserMapper userMapper;

@Override

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

User user = userMapper.loadUserByUsername(username);

if (user == null) {

throw new UsernameNotFoundException("用户不存在");

}

user.setRoles(userMapper.getRolesByUid(user.getId()));

return user;

}

}

User类:

public class User implements UserDetails {

private Integer id;

private String username;

private String password;

private Boolean enabled;

private Boolean accountNonExpired;

private Boolean accountNonLocked;

private Boolean credentialsNonExpired;

private List roles = new ArrayList<>();

@Override

public String toString() {

return "User{" +

"id=" + id +

", username='" + username + '\'' +

", password='" + password + '\'' +

", enabled=XZEjZsS" + enabled +

", accountNonExpired=" + accountNonExpired +

", accountNonLocked=" + accountNonLocked +

", credentialsNonExpired=" + credentialsNonExpired +

", roles=" + roles +

'}';

}

@Override

public Collection extends GrantedAuthority> getAuthorities() {

List authorities = new ArrayList<>();

for (Role role : roles) {

authorities.add(new SimpleGrantXZEjZsSedAuthority(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;

}

public void setId(Integer id) {

this.id = id;

}

public void setUsername(String username) {

this.username = username;

}

public void setPassword(String password) {

this.password = password;

}

public void setEnabled(Boolean enabled) {

this.enabled = enabled;

}

public void setAccountNonExpired(Boolean accountNonExpired) {

this.accountNonExpired = accountNonExpired;

}

public void setAccountNonLocked(Boolean accountNonLocked) {

this.accountNonLocked = accountNonLocked;

}

public void setCredentialsNonExpired(Boolean credentialsNonExpired) {

this.credentialsNonExpired = credentialsNonExpired;

}

public Integer getId() {

return id;

}

public List getRoles() {

return roles;

}

public void setRoles(List roles) {

this.roles = roles;

}

}

Spring Security中的配置:

@Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {

auth.userDetailsService(myUserDetailsService);

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python 各种模块地址(python是什么意思)
下一篇:Python 使用 face_recognition 人脸识别(python编程)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~