package com.faf223.expensetrackerfaf.security; import com.faf223.expensetrackerfaf.model.Credential; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import java.util.Collection; import java.util.Collections; @Data @Builder @NoArgsConstructor(force = true) @AllArgsConstructor public class PersonDetails implements UserDetails { private final Credential credential; @Override public Collection getAuthorities() { return Collections.singletonList(new SimpleGrantedAuthority(credential.getRole().toString())); } @Override public String getPassword() { return credential.getPassword(); } @Override public String getUsername() { return credential.getEmail(); } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { return true; } }