Spring Security简介
简介
Spring Security是一个专注于为Java应用程序提供身份认证和授权的框架,它的强大之处在于它可以轻松扩展以满足自定义的需求。
特点
- 对身份的认证和授权提供全面的、可扩展的支持。
- 防止各种攻击,如会话固定攻击、点击劫持、csrf攻击等。
- 支持Servlet API、SpringMVC等Web技术集成。
SpringBoot整合Security
1、引入依赖
2、用户类实现UserDetails接口,并实现方法
/**
*
* @return true:账号未过期
*/
@Override
public boolean isAccountNonExpired() {
return true;
}
/**
*
* @return true:账号未锁定
*/
@Override
public boolean isAccountNonLocked() {
return false;
}
/**
*
* @return true:凭证未过期
*/
@Override
public boolean isCredentialsNonExpired() {
return true;
}
/**
*
* @return true:账号可用
*/
@Override
public boolean isEnabled() {
return true;
}
public void setUsername(String username) {
this.username = username;
}
/**
*
* @return 返回用户的权限集合(一个用户可以有多个权限)
*/
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
List<GrantedAuthority> list=new ArrayList<>();
list.add(new GrantedAuthority() {
@Override
public String getAuthority() {
//type=1时代表用户为超级管理员,2代表普通用户
switch (type){
case 1:
return "ADMIN";
default:
return "USER";
}
}
});
return list;
}
3、UserService实现UserDetailsService接口并实现接口方法