package com.lstznkj.groundstation.security; import com.lstznkj.groundstation.model.Authority; import com.lstznkj.groundstation.model.SysRole; import com.lstznkj.groundstation.model.User; import com.fasterxml.jackson.annotation.JsonIgnore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class UserDetailsImpl implements UserDetails { private Logger logger= LoggerFactory.getLogger( UserDetailsImpl.class); private User user; private List roles; public UserDetailsImpl(){ } public UserDetailsImpl(User user) { this.user=user; } @JsonIgnore @Override public Collection getAuthorities() { List authorityList=new ArrayList<>(); // logger.info("get authorities: roles size is "+user.getSysRoles().size()); for(SysRole role : user.getSysRoles()) { logger.info(role.getName()+ "'s authorities size is "+role.getAuthorities().size()); for(Authority authority:role.getAuthorities()) { authorityList.add(authority); } // authorityList.add(new SimpleGrantedAuthority((role.getName()))); } return authorityList; } public List getRoles() { return user.getRoles(); } @Override @JsonIgnore public String getPassword() { return user.getPassword(); } @Override public String getUsername() { return user.getUsername(); } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return !user.isLocked(); } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return true; } }