From 3a53a814ec72a7237b529e8b0fb1f54778f98831 Mon Sep 17 00:00:00 2001 From: Art Date: Sat, 4 Sep 2021 10:26:21 +0300 Subject: [PATCH] 17. Spring Security User domain (#1) --- .../backend/domain/UserPrincipal.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java new file mode 100644 index 0000000..04ec61a --- /dev/null +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java @@ -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 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(); + } +}