Spring Security学习 使用数据库认证

Spring Security学习 使用数据库认证


在 Spring Security 中如果想要使用数据进行认证操作,有很多种操作方式,这里介绍使用 UserDetails 、 UserDetailsService 来完成操作。

UserDetails

public interface UserDetails extends Serializable {
     Collection<? extends GrantedAuthority> getAuthorities();
     String getPassword();       
     String getUsername();       
     boolean isAccountNonExpired();      
     boolean isAccountNonLocked();    
     boolean isCredentialsNonExpired();    
     boolean isEnabled(); 
}

UserDetails 是一个接口,我们可以认为 UserDetails 作用是于封装当前进行认证的用户信息,但由于其是一个 接口,所以我们可以对其进行实现,也可以使用 Spring Security提供的一个 UserDetails 的实现类 User 来完成 操作

以下是User类的部分代码

public class User implements UserDetails, CredentialsContainer {
 
    private String password;    
    private final String username;    
    private final Set<GrantedAuthority> authorities;    
    private final boolean accountNonExpired; //帐户是否过期    
    private final boolean accountNonLocked; //帐户是否锁定    
    private final boolean credentialsNonExpired; //认证是否过期    
    private final boolean enabled; //帐户是否可用

UserDetailsService

public interface UserDetailsService {        
	UserDetails loadUserByUsername(String username) throws UsernameNotFoundException; 
}

上面将 UserDetails 与 UserDetailsService 做了一个简单的介绍,那么我们具体如何完成 Spring Security 的数据库认 证操作,我们通过用户管理中用户登录来完成 Spring Security 的认证操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值