package com.airlock.iam.saml2.infrastructure.service;

import com.airlock.iam.saml2.domain.service.Saml2FlowFederationSessionTerminationService;
import com.airlock.iam.saml2.infrastructure.request.Saml2Request;
import com.airlock.iam.saml2.infrastructure.request.Saml2Response;
import com.sun.identity.plugin.session.SessionException;
import com.sun.identity.plugin.session.SessionManager;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public final class Saml2FlowFederationSessionTerminationServiceImpl implements Saml2FlowFederationSessionTerminationService {
   private final Provider<Saml2Request> request;
   private final Provider<Saml2Response> response;

   @Inject
   Saml2FlowFederationSessionTerminationServiceImpl(Provider<Saml2Request> request, Provider<Saml2Response> response) {
      this.request = request;
      this.response = response;
   }

   @Override
   public void terminateSession() {
      try {
         SessionManager.getProvider()
            .invalidateSession(
               SessionManager.getProvider().getSession((HttpServletRequest)this.request.get()),
               (HttpServletRequest)this.request.get(),
               (HttpServletResponse)this.response.get()
            );
      } catch (SessionException var2) {
      }
   }
}
