From 526887f3e2413ec58cc2de88a13a1f3273dda02e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Fri, 17 May 2024 15:44:22 +0200 Subject: [PATCH] RED-9147: Added function to authenticate needed for websockets --- .../TenantAuthenticationManagerResolver.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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));