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 permissions; @Override public Collection getAuthorities() { // 根据自定义逻辑来返回用户权限,如果用户权限返回空或者和拦截路径对应权限不同,验证不通过 if (!permissions.isEmpty()) { List 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; } }