diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java b/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java index a225690..2c159bd 100644 --- a/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/Rsso.java @@ -59,4 +59,7 @@ public class Rsso { token); return webclient.get().uri(url).retrieve().bodyToMono(RssoResponse.class).block(); } + public void impersonateUserFormSession(String userId) throws ARException{ + javaAPI.impersonateUser(userId); + } } diff --git a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java index d773979..5ce9768 100644 --- a/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java +++ b/backend/src/main/java/com/nttdata/calender/api/rsso/RssoInterceptor.java @@ -1,5 +1,6 @@ package com.nttdata.calender.api.rsso; - +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -15,6 +16,7 @@ import com.bmc.thirdparty.org.springframework.beans.factory.annotation.Autowired public class RssoInterceptor implements HandlerInterceptor { private final static boolean DEBUG = true; private final Rsso rsso; + private static final Logger applicationLogger = LogManager.getLogger("application"); @Autowired public RssoInterceptor(Rsso rsso) { @@ -42,20 +44,31 @@ public class RssoInterceptor implements HandlerInterceptor { } var session = request.getSession(true); - var user = session.getAttribute("user"); - if (user == null) { - var cookies = request.getCookies(); + applicationLogger.info("RSSO Interceptor Session:"+session.toString()); + var user = session.getAttribute("user"); + applicationLogger.info("\n\n\nRSSO Interceptor user:"+user); + System.out.println("USER:"+user); + if (user == null) { + applicationLogger.info("User ist NULL:"); + var cookies = request.getCookies(); + System.out.println("cookies:"+cookies); + applicationLogger.info("Cookies:"+cookies.toString()); if (cookies != null) { for (var cookie : cookies) { - if (cookie.getName().startsWith("sso_")) { + if (cookie.getName().startsWith("sso_")||cookie.getName().startsWith("saml_")) { + System.out.println("cookie:"+cookie.getName()+"/"+cookie.getValue()); rsso.createSession(cookie.getValue(), session); return true; } } } + applicationLogger.info("KEINE COOKIES GESETZT"); + System.out.println("no cookies"); throw new Exception("no cookies set"); } + applicationLogger.info("User ist gesetzt:"+ user); + rsso.impersonateUserFormSession((String) user); return true; } }