|
13 | 13 | import javax.servlet.http.HttpServletResponse; |
14 | 14 |
|
15 | 15 | import java.io.IOException; |
16 | | -import java.util.Arrays; |
17 | | -import java.util.HashSet; |
18 | | -import java.util.Locale; |
19 | | -import java.util.Set; |
| 16 | +import java.util.*; |
20 | 17 |
|
21 | 18 | import lombok.extern.slf4j.Slf4j; |
22 | 19 | import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
@@ -61,10 +58,15 @@ private void verifyToken(HttpServletRequest request) { |
61 | 58 | e.printStackTrace(); |
62 | 59 | } |
63 | 60 |
|
64 | | - FirebaseUser firebaseUser = FirebaseMapper.INSTANCE.toFirebaseUser(decodedToken); |
65 | | - if (firebaseUser != null) { |
| 61 | + if (Optional.ofNullable(decodedToken).isPresent()) { |
| 62 | + FirebaseUser firebaseUser = FirebaseMapper.INSTANCE.toFirebaseUser(decodedToken); |
| 63 | + firebaseUser.setRole("USER"); |
| 64 | + Map<String, Object> claims = decodedToken.getClaims(); |
| 65 | + if (!claims.isEmpty() && claims.containsKey("role")) { |
| 66 | + firebaseUser.setRole(((String) claims.get("role")).toUpperCase(Locale.ROOT)); |
| 67 | + } |
66 | 68 | Set<GrantedAuthority> roles = new HashSet<>(); |
67 | | - roles.add(new SimpleGrantedAuthority(String.format("ROLE_%s", firebaseUser.getRole().toUpperCase(Locale.ROOT)))); |
| 69 | + roles.add(new SimpleGrantedAuthority(String.format("ROLE_%s", firebaseUser.getRole()))); |
68 | 70 | UsernamePasswordAuthenticationToken authReq = |
69 | 71 | new UsernamePasswordAuthenticationToken(firebaseUser, null, roles); |
70 | 72 | authReq.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); |
|
0 commit comments