|
24 | 24 | import java.util.HashSet; |
25 | 25 | import java.util.List; |
26 | 26 | import java.util.Set; |
| 27 | +import java.util.stream.Collectors; |
27 | 28 |
|
28 | 29 | import javax.inject.Inject; |
29 | 30 |
|
| 31 | +import org.apache.logging.log4j.LogManager; |
| 32 | +import org.apache.logging.log4j.Logger; |
30 | 33 | import org.springframework.core.env.Environment; |
31 | 34 | import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; |
32 | 35 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
@@ -57,6 +60,8 @@ public class OpenIDAuthenticationBackend implements IAuthenticationBackend { |
57 | 60 | private static final String REG_ID = "shinyproxy"; |
58 | 61 | private static final String ENV_TOKEN_NAME = "SHINYPROXY_OIDC_ACCESS_TOKEN"; |
59 | 62 |
|
| 63 | + private Logger log = LogManager.getLogger(OpenIDAuthenticationBackend.class); |
| 64 | + |
60 | 65 | private OAuth2AuthorizedClientService authorizedClientService; |
61 | 66 |
|
62 | 67 | @Inject |
@@ -154,6 +159,17 @@ protected GrantedAuthoritiesMapper createAuthoritiesMapper() { |
154 | 159 | for (GrantedAuthority auth: authorities) { |
155 | 160 | if (auth instanceof OidcUserAuthority) { |
156 | 161 | OidcIdToken idToken = ((OidcUserAuthority) auth).getIdToken(); |
| 162 | + |
| 163 | + if (log.isDebugEnabled()) { |
| 164 | + String lineSep = System.getProperty("line.separator"); |
| 165 | + String claims = idToken.getClaims().entrySet().stream() |
| 166 | + .map(e -> String.format("%s -> %s", e.getKey(), e.getValue())) |
| 167 | + .collect(Collectors.joining(lineSep)); |
| 168 | + log.debug(String.format("Checking for roles in claim '%s'. Available claims in ID token:%s%s", |
| 169 | + rolesClaimName, lineSep, claims)); |
| 170 | + |
| 171 | + } |
| 172 | + |
157 | 173 | List<String> roles = idToken.getClaimAsStringList(rolesClaimName); |
158 | 174 | if (roles == null) continue; |
159 | 175 | for (String role: roles) { |
|
0 commit comments