package com.nova.sankuai.security;
|
|
import io.swagger.annotations.ApiModel;
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
import org.springframework.context.annotation.Scope;
|
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
import java.util.ArrayList;
|
import java.util.Collection;
|
import java.util.List;
|
|
/**
|
* @author weikangdi
|
*/
|
@Data
|
@AllArgsConstructor
|
@NoArgsConstructor
|
@Scope("session")
|
@ApiModel("授权用户信息")
|
public class UserDetail implements UserDetails {
|
|
private Long id;
|
|
private String username;
|
|
private String phone;
|
|
// 身份证号码
|
private String idCard;
|
|
private Integer type;
|
|
private List<String> permissions;
|
|
@Override
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
// 根据自定义逻辑来返回用户权限,如果用户权限返回空或者和拦截路径对应权限不同,验证不通过
|
if (!permissions.isEmpty()) {
|
List<GrantedAuthority> list = new ArrayList<>();
|
for (String temp : permissions) {
|
GrantedAuthority au = new SimpleGrantedAuthority(temp);
|
list.add(au);
|
}
|
return list;
|
}
|
return null;
|
}
|
|
@Override
|
public String getPassword() {
|
return null;
|
}
|
|
@Override
|
public String getUsername() {
|
return username;
|
}
|
|
@Override
|
public boolean isAccountNonExpired() {
|
return true;
|
}
|
|
@Override
|
public boolean isAccountNonLocked() {
|
return true;
|
}
|
|
@Override
|
public boolean isCredentialsNonExpired() {
|
return true;
|
}
|
|
@Override
|
public boolean isEnabled() {
|
return true;
|
}
|
}
|