diff --git a/src/main/java/com/ffii/fpsms/config/security/jwt/web/JwtAuthenticationController.java b/src/main/java/com/ffii/fpsms/config/security/jwt/web/JwtAuthenticationController.java index f7d40ef..3a0d94f 100644 --- a/src/main/java/com/ffii/fpsms/config/security/jwt/web/JwtAuthenticationController.java +++ b/src/main/java/com/ffii/fpsms/config/security/jwt/web/JwtAuthenticationController.java @@ -1,8 +1,11 @@ package com.ffii.fpsms.config.security.jwt.web; import java.time.Instant; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -11,6 +14,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; @@ -115,9 +119,12 @@ public class JwtAuthenticationController { User user = userRepository.findByName(authenticationRequest.getUsername()).get(0); - Set abilities = new HashSet<>(); - userAuthorityService.getUserAuthority(user).forEach(auth -> abilities.add(new AbilityModel(auth.getAuthority()))); - + List abilities = new ArrayList<>(); + final Set userAuthority = userAuthorityService.getUserAuthority(user); + if (!userAuthority.isEmpty()) { + abilities = userAuthority.stream() + .map(auth -> auth.getAuthority()).toList(); + } return ResponseEntity.ok(new JwtResponse(accessToken, refreshToken, null, user, abilities)); } diff --git a/src/main/java/com/ffii/fpsms/model/JwtResponse.java b/src/main/java/com/ffii/fpsms/model/JwtResponse.java index 79c2af7..f3a8c37 100644 --- a/src/main/java/com/ffii/fpsms/model/JwtResponse.java +++ b/src/main/java/com/ffii/fpsms/model/JwtResponse.java @@ -1,6 +1,7 @@ package com.ffii.fpsms.model; import java.io.Serializable; +import java.util.List; import java.util.Set; import com.ffii.fpsms.modules.user.entity.User; @@ -14,9 +15,11 @@ public class JwtResponse implements Serializable { private final String accessToken; private final String refreshToken; private final String role; - private final Set abilities; + private final List abilities; +// private final Set abilities; - public JwtResponse(String accessToken, String refreshToken, String role, User user, Set abilities) { + public JwtResponse(String accessToken, String refreshToken, String role, User user, List abilities) { +// public JwtResponse(String accessToken, String refreshToken, String role, User user, Set abilities) { this.accessToken = accessToken; this.refreshToken = refreshToken; this.role = role; @@ -50,7 +53,7 @@ public class JwtResponse implements Serializable { return email; } - public Set getAbilities() { + public List getAbilities() { return abilities; } } \ No newline at end of file