diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java index a4e60ac57..f80fe11dc 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/KeycloakUtils.java @@ -3,15 +3,23 @@ package ru.spcex.clearing.backendapi.security; import org.keycloak.KeycloakPrincipal; import org.keycloak.adapters.spi.KeycloakAccount; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory;; import org.springframework.security.core.Authentication; public class KeycloakUtils { + static Logger log = LoggerFactory.getLogger(KeycloakUtils.class); + /** * Достать username из Keycloak имплементации Authentication */ public static String getUserNameFromAuthentication(Authentication authentication) { + if (authentication == null) return null; + if (!(authentication instanceof KeycloakAuthenticationToken)) { // AnonymousAuthenticationToken + log.trace("Authentication token class {} is not KeycloakAuthenticationToken", authentication.getClass().getName()); + return null; + } KeycloakAuthenticationToken auth = (KeycloakAuthenticationToken) authentication; - if (auth == null) return null; KeycloakAccount details = (KeycloakAccount) auth.getDetails(); return ((KeycloakPrincipal) details.getPrincipal()) .getKeycloakSecurityContext()