17. Spring Security User domain (#1)

This commit is contained in:
Art
2021-09-04 10:26:21 +03:00
parent 47a04208bc
commit 3a53a814ec

View File

@ -0,0 +1,58 @@
package net.shyshkin.study.fullstack.supportportal.backend.domain;
import lombok.RequiredArgsConstructor;
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.stream.Collectors;
import java.util.stream.Stream;
@RequiredArgsConstructor
public class UserPrincipal implements UserDetails {
private final User user;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return Stream
.concat(
Stream.of(user.getRoles()),
Stream.of(user.getAuthorities())
)
.map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
}
@Override
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.isNotLocked();
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return user.isActive();
}
}