diff --git a/pom.xml b/pom.xml index 0c1dc24..2d226b0 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.knecon.fforesight keycloak-commons - 0.1-SNAPSHOT + 0.2-SNAPSHOT keycloak-commons keycloak-commons diff --git a/src/main/java/com/knecon/fforesight/keycloakcommons/MultiTenancyJwtBasedWebConfiguration.java b/src/main/java/com/knecon/fforesight/keycloakcommons/MultiTenancyJwtBasedWebConfiguration.java index 37610d8..edd02c2 100644 --- a/src/main/java/com/knecon/fforesight/keycloakcommons/MultiTenancyJwtBasedWebConfiguration.java +++ b/src/main/java/com/knecon/fforesight/keycloakcommons/MultiTenancyJwtBasedWebConfiguration.java @@ -2,6 +2,7 @@ package com.knecon.fforesight.keycloakcommons; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -21,7 +22,7 @@ public class MultiTenancyJwtBasedWebConfiguration implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addWebRequestInterceptor(jwtBasedTenantInterceptor); + registry.addWebRequestInterceptor(jwtBasedTenantInterceptor).order(Ordered.LOWEST_PRECEDENCE); } } diff --git a/src/main/java/com/knecon/fforesight/keycloakcommons/security/TokenRealmService.java b/src/main/java/com/knecon/fforesight/keycloakcommons/security/TokenRealmService.java index 127d7f0..f9920b0 100644 --- a/src/main/java/com/knecon/fforesight/keycloakcommons/security/TokenRealmService.java +++ b/src/main/java/com/knecon/fforesight/keycloakcommons/security/TokenRealmService.java @@ -6,15 +6,17 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken; import org.springframework.stereotype.Service; -import com.knecon.fforesight.keycloakcommons.security.TokenUtils; - @Service public class TokenRealmService { public Optional getRealm() { var authentication = (JwtAuthenticationToken) SecurityContextHolder.getContext().getAuthentication(); - return Optional.of(TokenUtils.toTenant(authentication.getToken().getTokenValue())); + if (authentication != null && authentication.getToken() != null && authentication.getToken().getTokenValue() != null) { + return Optional.of(TokenUtils.toTenant(authentication.getToken().getTokenValue())); + } else { + return Optional.empty(); + } } }