diff --git a/src/main/java/com/knecon/fforesight/keycloakcommons/security/TenantAuthenticationManagerResolver.java b/src/main/java/com/knecon/fforesight/keycloakcommons/security/TenantAuthenticationManagerResolver.java index 65a83a3..9fe63a7 100644 --- a/src/main/java/com/knecon/fforesight/keycloakcommons/security/TenantAuthenticationManagerResolver.java +++ b/src/main/java/com/knecon/fforesight/keycloakcommons/security/TenantAuthenticationManagerResolver.java @@ -1,6 +1,5 @@ package com.knecon.fforesight.keycloakcommons.security; -import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -8,7 +7,6 @@ import java.util.concurrent.ConcurrentHashMap; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManagerResolver; import org.springframework.security.oauth2.jwt.JwtDecoder; -import org.springframework.security.oauth2.jwt.JwtDecoders; import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter; import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider; import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver; @@ -37,6 +35,18 @@ public class TenantAuthenticationManagerResolver implements AuthenticationManage } + public AuthenticationManager resolve(String token) { + + return this.authenticationManagers.computeIfAbsent(toTenant(token), this::fromTenant); + } + + + private String toTenant(String token) { + + return TokenUtils.toTenant(token); + } + + private String toTenant(HttpServletRequest request) { return TokenUtils.toTenant(this.resolver.resolve(request));