RED-6686 - token based web request interceptor

This commit is contained in:
Timo Bejan 2023-06-27 22:37:16 +03:00
parent b948478353
commit 2f92814657

View File

@ -0,0 +1,41 @@
package com.knecon.fforesight.keycloakcommons;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.stereotype.Component;
import org.springframework.ui.ModelMap;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.context.request.WebRequestInterceptor;
import com.knecon.fforesight.keycloakcommons.security.TokenRealmService;
import com.knecon.fforesight.tenantcommons.TenantContext;
import lombok.RequiredArgsConstructor;
@Component
@RequiredArgsConstructor
@ConditionalOnClass(WebRequestInterceptor.class)
public class JwtBasedTenantInterceptor implements WebRequestInterceptor {
private final TokenRealmService tokenRealmService;
@Override
public void preHandle(WebRequest request) {
tokenRealmService.getRealm().ifPresent(TenantContext::setTenantId);
}
@Override
public void postHandle(WebRequest request, ModelMap model) {
TenantContext.clear();
}
@Override
public void afterCompletion(WebRequest request, Exception ex) {
}
}