package com.l7tech.external.assertions.oauth2.introspection.server;

import com.l7tech.common.http.GenericHttpClient;
import com.l7tech.external.assertions.oauth2.introspection.config.OAuthTokenIssuerConfig;
import com.l7tech.external.assertions.oauth2.introspection.config.OAuthTokenType;
import com.l7tech.server.transport.http.SslClientTrustManager;
import java.util.concurrent.ExecutorService;

public class OAuthTokenIssuer {
   private final OAuthTokenIssuerConfig a;
   private final OAuthTokenIntrospector b;

   public OAuthTokenIssuer(OAuthTokenIssuerConfig var1, ExecutorService var2, GenericHttpClient var3, SslClientTrustManager var4) {
      this.a = var1;
      this.b = var1.getTokenType() == OAuthTokenType.JWT
         ? new OAuthJWTTokenIntrospector(var1, var2, var3, var4)
         : new OAuthOpaqueTokenIntrospector(var1, var3, var4);
   }

   public String getName() {
      return this.a.getName();
   }

   public OAuthTokenIssuerConfig getConfig() {
      return this.a;
   }

   public OAuthTokenIntrospector getTokenIntrospector() {
      return this.b;
   }
}
