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

import com.l7tech.external.assertions.oauth2.introspection.server.OAuth2IntrospectionAdminImpl;
import com.l7tech.gateway.common.cluster.ClusterProperty;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.DefaultAssertionMetadata;
import com.l7tech.policy.assertion.ExtensionInterfaceBinding;
import com.l7tech.policy.assertion.SetsVariables;
import com.l7tech.policy.assertion.UsesVariables;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.policy.variable.VariableMetadata;
import com.l7tech.util.Functions.Unary;
import java.util.Collections;
import java.util.HashMap;

public class OAuth2IntrospectionAssertion extends Assertion implements UsesVariables, SetsVariables {
   public static final String VAR_PREFIX_DEFAULT;
   public static final String LOCAL_GATEWAY_ISSUER;
   public static final String DEFAULT_GATEWAY_ISSUER;
   private String token;
   private String tokenIssuerHint;
   private String scope;
   private boolean atLeastOneScope;
   private String audience;
   private boolean atLeastOneAudience;
   private String varPrefix;
   private boolean includeFullResponseDetails;
   private boolean trustGatewayAsIssuer;
   private static final String META_INITIALIZED;
   public static final String KNOWN_TOKEN_ISSUERS_CWP;
   public static final String KNOWN_TOKEN_ISSUERS_CONFIG;
   public static final String DEFAULT_TOKEN_ISSUER_CWP;
   public static final String DEFAULT_TOKEN_ISSUER_CONFIG;
   public static final String TOKEN_CACHE_SIZE_CWP;
   public static final String TOKEN_CACHE_SIZE_CONFIG;
   public static final int DEFAULT_TOKEN_CACHE_SIZE = 1000;
   public static final String TOKEN_CACHE_ITEM_LIFETIME_CWP;
   public static final String TOKEN_CACHE_ITEM_LIFETIME_CONFIG;
   public static final int DEFAULT_TOKEN_CACHE_ITEM_LIFETIME = -1;
   public static final String JWKS_REFRESH_INTERVAL_CWP;
   public static final String JWKS_REFRESH_INTERVAL_CONFIG;
   public static final int DEFAULT_JWKS_REFRESH_INTERVAL = 300;
   public static final String JWKS_READ_TIMEOUT_CWP;
   public static final String JWKS_READ_TIMEOUT_CONFIG;
   public static final int DEFAULT_JWKS_READ_TIMEOUT = 2000;
   static final long serialVersionUID = 5784373961004560947L;
   private static final String[] b;

   public OAuth2IntrospectionAssertion() {
      this.varPrefix = b[36];
   }

   public String getToken() {
      return this.token;
   }

   public void setToken(String var1) {
      this.token = var1;
   }

   public String getTokenIssuerHint() {
      return this.tokenIssuerHint;
   }

   public void setTokenIssuerHint(String var1) {
      this.tokenIssuerHint = var1;
   }

   public String getScope() {
      return this.scope;
   }

   public void setScope(String var1) {
      this.scope = var1;
   }

   public boolean isAtLeastOneScope() {
      return this.atLeastOneScope;
   }

   public void setAtLeastOneScope(boolean var1) {
      this.atLeastOneScope = var1;
   }

   public String getAudience() {
      return this.audience;
   }

   public void setAudience(String var1) {
      this.audience = var1;
   }

   public boolean isAtLeastOneAudience() {
      return this.atLeastOneAudience;
   }

   public void setAtLeastOneAudience(boolean var1) {
      this.atLeastOneAudience = var1;
   }

   public String getVarPrefix() {
      return this.varPrefix;
   }

   public void setVarPrefix(String var1) {
      this.varPrefix = var1;
   }

   public boolean isIncludeFullResponseDetails() {
      return this.includeFullResponseDetails;
   }

   public void setIncludeFullResponseDetails(boolean var1) {
      this.includeFullResponseDetails = var1;
   }

   public boolean isTrustGatewayAsIssuer() {
      return this.trustGatewayAsIssuer;
   }

   public void setTrustGatewayAsIssuer(boolean var1) {
      this.trustGatewayAsIssuer = var1;
   }

   public String[] getVariablesUsed() {
      return Syntax.getReferencedNames(new String[]{this.token, this.tokenIssuerHint, this.scope, this.audience});
   }

   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = super.defaultMeta();
      if (Boolean.TRUE.equals(var1.get(META_INITIALIZED))) {
         return var1;
      }

      HashMap var2 = new HashMap();
      String[] var3 = b;
      var2.put(var3[38], new String[]{var3[32], var3[41]});
      var2.put(var3[6], new String[]{var3[34], ""});
      var2.put(var3[43], new String[]{var3[29], String.valueOf(1000)});
      var2.put(var3[12], new String[]{var3[21], String.valueOf(-1)});
      var2.put(var3[44], new String[]{var3[40], String.valueOf(300)});
      var2.put(var3[48], new String[]{var3[11], String.valueOf(2000)});
      var1.put(var3[0], var2);
      var1.put(var3[20], var3[46]);
      var1.put(var3[24], var3[49]);
      var1.put(var3[33], new String[]{var3[13]});
      var1.put(var3[25], var3[15]);
      var1.put(var3[45], var3[16]);
      var1.put(var3[23], var3[8]);
      var1.put(var3[9], var3[28]);
      var1.put(var3[17], (Unary)var0 -> {
         ExtensionInterfaceBinding var1x = new ExtensionInterfaceBinding(OAuth2IntrospectionAdmin.class, null, new OAuth2IntrospectionAdminImpl(var0));
         return Collections.singletonList(var1x);
      });
      var1.put(META_INITIALIZED, Boolean.TRUE);
      return var1;
   }

   public VariableMetadata[] getVariablesSet() {
      VariableMetadata[] var10000;
      if (this.varPrefix == null) {
         var10000 = new VariableMetadata[0];
      } else {
         var10000 = new VariableMetadata[10];
         String[] var1 = b;
         var10000[0] = new VariableMetadata(this.varPrefix + var1[42]);
         var10000[1] = new VariableMetadata(this.varPrefix + var1[26]);
         var10000[2] = new VariableMetadata(this.varPrefix + var1[31]);
         var10000[3] = new VariableMetadata(this.varPrefix + var1[19]);
         var10000[4] = new VariableMetadata(this.varPrefix + var1[4]);
         var10000[5] = new VariableMetadata(this.varPrefix + var1[1]);
         var10000[6] = new VariableMetadata(this.varPrefix + var1[39]);
         var10000[7] = new VariableMetadata(this.varPrefix + var1[27]);
         var10000[8] = new VariableMetadata(this.varPrefix + var1[5]);
         var10000[9] = new VariableMetadata(this.varPrefix + var1[7]);
      }

      return var10000;
   }

   static {
      String[] var5 = new String[50];
      int var3 = 0;
      String var2 = "a?\u001dB\u0001OQR!\u0007A\u0010XWk6\u001b\t,&\u001bT\u0007DBo6\u0007m2\u001dE\u001d\u0018J\u0007>\u001f\u0007R\u0014F\u001d\u0004,2\u001dU\u0012,6\u001aC\u001aX|f6\u001bR\u0007CSv:\u0007_'m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rf6\u000eP\u0000FWV<\u0003T\u001bcPq&\rC\u0004,2\u0012A\u0004c&\u001c^\u000ed6\tE\u0000XFQ6\u001c\u007f\u0014GF2m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OBf\u0007\u0001\\\u0010EVv\u001a\u0006|\u001cFOk \rR\u001aDGqFH\u0004#bUXFc7HE\u001cGFm&\u001c\u0011\u001cD\u0003o:\u0004]\u001cYFa<\u0006U\u0006\u0004\u0003F6\u000eP\u0000FW\"%\t]\u0000O\u0003k H\u0003E\u001a\u0013\">\u0001]\u0019CPg0\u0007_\u0011Y\r4m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rx\u0001ONN:\u000eT!CNg\u001a\u0006b\u0010ILl7\u001b\rc0\u000bT\u0006Y`m=\u001cC\u001aF'm2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rf6\u000eP\u0000FWV<\u0003T\u001bcPq&\rC/a<\u0005\u001e\u0019\u001dWg0\u0000\u001e\u0016EMq<\u0004TZXFq<\u001dC\u0016OP-2\u001dE\u001dOMv:\u000bP\u0001CLl}\u000fX\u0013/a<\u0005\u001e\u0019\u001dWg0\u0000\u001e\u0016EMq<\u0004TZXFq<\u001dC\u0016OP-2\u001dE\u001dOMv:\u000bP\u0001CLl}\u000fX\u0013\u001ag+\u001cT\u001bYJm=!_\u0001OQd2\u000bT\u0006lBa'\u0007C\f&m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\ri=\u0007F\u001b~Li6\u0006x\u0006YVg!\u001b\u0006, \u000b^\u0005O\tq;\u0007C\u0001dBo6\u0093J<\u001f\u0011\u0019EMes\u001cY\u0010\nWj6HX\u001b^Qm \u0018T\u0016^Ffs'p\u0000^K\"\u0007\u0007Z\u0010D\u0003v<HS\u0010\n@c0\u0000T\u0011\u0004\u0003F6\u000eP\u0000FW\"%\t]\u0000O\u0003k H\u001cD\nPg0\u0007_\u0011Y\r\"\u001a\u000e\u0011\u0001BF\"%\t]\u0000O\u0003k H\u001cD\u0006\u0003c0\u001cD\u0014F\u0003v<\u0003T\u001b\nFz#\u0001C\u0014^Jm=HE\u001cGF\"$\u0001]\u0019\nAgs\u001dB\u0010N\r\t>\u0017\rW\u0014_Ovm\u0015r<\u0004X\u0016Sbf%\u0001R\u0010iOc \u001b_\u0014GF\bn<\u0006V;KNg\u000fr2\u0004T\u0001^FL<\fT<ILl\n,0\u0004X\u0010DW]:\f\u0006,6\u001aC\u001aX\u0015q6\u001c\u000b\u0018EGw?\tC4YPg!\u001cX\u001aDPAQ:\u0012TUEE\"'\u0000TUcMv!\u0007B\u0005O@v6\f\u0011:kVv;He\u001aAFls+P\u0016BF,s,T\u0013KVn'HG\u0014FVgs\u0001BU\u001b\u00132c4m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rx\u0001ONN:\u000eT!CNg\u001a\u0006b\u0010ILl7\u001b\u0004,6\u0010A0I=\u0007F\u001b\nlC&\u001cYU~Li6\u0006\u0011<YPw6\u001aBUNFv2\u0001]\u0006\nBqs\"b:d\u0003C!\u001aP\f\u0004\u000er2\u0004T\u0001^FD<\u0004U\u0010XPZF6\u000eP\u0000FW\"\u001c)D\u0001B\u0003V<\u0003T\u001b\njq \u001dT\u0007\u0004\u0003A;\u0007^\u0006O\u0003m=\r\u0011\u0014GLl4HE\u001dO\u0003i=\u0007F\u001b\nlC&\u001cYU~Li6\u0006\u0011<YPw6\u001aBUKP\"'\u0000TUNFd2\u001d]\u0001\u0004\u0014,>\rE\u0014NBv2!_\u001c^Jc?\u0001K\u0010N\u0007m2\u001dE\u001d\u0018J#m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rb\u001cPF&m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\ri=\u0007F\u001b~Li6\u0006x\u0006YVg!\u001b\t,!\rB\u0005EMq6?H\u0004#bUXFd!\rB\u001d\nJl'\rC\u0003KO\":\u0006\u0011\u0006O@m=\fB[\ngg5\tD\u0019^\u0003t2\u0004D\u0010\nJqs[\u0001E\nPg0\u0007_\u0011Y\r\u0002Y\u000e\u0007,:\u001bB\u0000OQ#m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rb\u001cPF1m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OEp6\u001bY<DWg!\u001eP\u0019cMQ6\u000b^\u001bNP\u000er<\u0004X\u0016Smm7\rx\u0016EM%P6\u0019D\u001cXF\"2\u0006UUcMv!\u0007B\u0005O@vs'p\u0000^K0}X\u0011!EHg=1m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OEp6\u001bY<DWg!\u001eP\u0019cMQ6\u000b^\u001bNP";
      int var4 = "a?\u001dB\u0001OQR!\u0007A\u0010XWk6\u001b\t,&\u001bT\u0007DBo6\u0007m2\u001dE\u001d\u0018J\u0007>\u001f\u0007R\u0014F\u001d\u0004,2\u001dU\u0012,6\u001aC\u001aX|f6\u001bR\u0007CSv:\u0007_'m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rf6\u000eP\u0000FWV<\u0003T\u001bcPq&\rC\u0004,2\u0012A\u0004c&\u001c^\u000ed6\tE\u0000XFQ6\u001c\u007f\u0014GF2m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OBf\u0007\u0001\\\u0010EVv\u001a\u0006|\u001cFOk \rR\u001aDGqFH\u0004#bUXFc7HE\u001cGFm&\u001c\u0011\u001cD\u0003o:\u0004]\u001cYFa<\u0006U\u0006\u0004\u0003F6\u000eP\u0000FW\"%\t]\u0000O\u0003k H\u0003E\u001a\u0013\">\u0001]\u0019CPg0\u0007_\u0011Y\r4m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rx\u0001ONN:\u000eT!CNg\u001a\u0006b\u0010ILl7\u001b\rc0\u000bT\u0006Y`m=\u001cC\u001aF'm2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rf6\u000eP\u0000FWV<\u0003T\u001bcPq&\rC/a<\u0005\u001e\u0019\u001dWg0\u0000\u001e\u0016EMq<\u0004TZXFq<\u001dC\u0016OP-2\u001dE\u001dOMv:\u000bP\u0001CLl}\u000fX\u0013/a<\u0005\u001e\u0019\u001dWg0\u0000\u001e\u0016EMq<\u0004TZXFq<\u001dC\u0016OP-2\u001dE\u001dOMv:\u000bP\u0001CLl}\u000fX\u0013\u001ag+\u001cT\u001bYJm=!_\u0001OQd2\u000bT\u0006lBa'\u0007C\f&m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\ri=\u0007F\u001b~Li6\u0006x\u0006YVg!\u001b\u0006, \u000b^\u0005O\tq;\u0007C\u0001dBo6\u0093J<\u001f\u0011\u0019EMes\u001cY\u0010\nWj6HX\u001b^Qm \u0018T\u0016^Ffs'p\u0000^K\"\u0007\u0007Z\u0010D\u0003v<HS\u0010\n@c0\u0000T\u0011\u0004\u0003F6\u000eP\u0000FW\"%\t]\u0000O\u0003k H\u001cD\nPg0\u0007_\u0011Y\r\"\u001a\u000e\u0011\u0001BF\"%\t]\u0000O\u0003k H\u001cD\u0006\u0003c0\u001cD\u0014F\u0003v<\u0003T\u001b\nFz#\u0001C\u0014^Jm=HE\u001cGF\"$\u0001]\u0019\nAgs\u001dB\u0010N\r\t>\u0017\rW\u0014_Ovm\u0015r<\u0004X\u0016Sbf%\u0001R\u0010iOc \u001b_\u0014GF\bn<\u0006V;KNg\u000fr2\u0004T\u0001^FL<\fT<ILl\n,0\u0004X\u0010DW]:\f\u0006,6\u001aC\u001aX\u0015q6\u001c\u000b\u0018EGw?\tC4YPg!\u001cX\u001aDPAQ:\u0012TUEE\"'\u0000TUcMv!\u0007B\u0005O@v6\f\u0011:kVv;He\u001aAFls+P\u0016BF,s,T\u0013KVn'HG\u0014FVgs\u0001BU\u001b\u00132c4m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rx\u0001ONN:\u000eT!CNg\u001a\u0006b\u0010ILl7\u001b\u0004,6\u0010A0I=\u0007F\u001b\nlC&\u001cYU~Li6\u0006\u0011<YPw6\u001aBUNFv2\u0001]\u0006\nBqs\"b:d\u0003C!\u001aP\f\u0004\u000er2\u0004T\u0001^FD<\u0004U\u0010XPZF6\u000eP\u0000FW\"\u001c)D\u0001B\u0003V<\u0003T\u001b\njq \u001dT\u0007\u0004\u0003A;\u0007^\u0006O\u0003m=\r\u0011\u0014GLl4HE\u001dO\u0003i=\u0007F\u001b\nlC&\u001cYU~Li6\u0006\u0011<YPw6\u001aBUKP\"'\u0000TUNFd2\u001d]\u0001\u0004\u0014,>\rE\u0014NBv2!_\u001c^Jc?\u0001K\u0010N\u0007m2\u001dE\u001d\u0018J#m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rb\u001cPF&m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\ri=\u0007F\u001b~Li6\u0006x\u0006YVg!\u001b\t,!\rB\u0005EMq6?H\u0004#bUXFd!\rB\u001d\nJl'\rC\u0003KO\":\u0006\u0011\u0006O@m=\fB[\ngg5\tD\u0019^\u0003t2\u0004D\u0010\nJqs[\u0001E\nPg0\u0007_\u0011Y\r\u0002Y\u000e\u0007,:\u001bB\u0000OQ#m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rv<\u0003T\u001biBa;\rb\u001cPF1m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OEp6\u001bY<DWg!\u001eP\u0019cMQ6\u000b^\u001bNP\u000er<\u0004X\u0016Smm7\rx\u0016EM%P6\u0019D\u001cXF\"2\u0006UUcMv!\u0007B\u0005O@vs'p\u0000^K0}X\u0011!EHg=1m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OEp6\u001bY<DWg!\u001eP\u0019cMQ6\u000b^\u001bNP"
         .length();
      char var1 = 17;
      int var7 = -1;

      label24:
      while (true) {
         String var10000 = var2.substring(++var7, var7 + var1);
         byte var10001 = -1;

         while (true) {
            String var15 = a(b(var10000));
            switch (var10001) {
               case 0:
                  var5[var3++] = var15;
                  if ((var7 += var1) >= var4) {
                     b = var5;
                     String[] var10 = b;
                     LOCAL_GATEWAY_ISSUER = b[3];
                     DEFAULT_TOKEN_ISSUER_CWP = var10[6];
                     TOKEN_CACHE_SIZE_CWP = var10[43];
                     JWKS_READ_TIMEOUT_CWP = var10[48];
                     DEFAULT_GATEWAY_ISSUER = var10[22];
                     TOKEN_CACHE_ITEM_LIFETIME_CWP = var10[12];
                     JWKS_REFRESH_INTERVAL_CWP = var10[44];
                     VAR_PREFIX_DEFAULT = var10[2];
                     KNOWN_TOKEN_ISSUERS_CWP = var10[38];
                     var10000 = OAuth2IntrospectionAssertion.class.getName();
                     String[] var8 = b;
                     META_INITIALIZED = var10000 + var8[35];
                     KNOWN_TOKEN_ISSUERS_CONFIG = ClusterProperty.asServerConfigPropertyName(var8[18]);
                     DEFAULT_TOKEN_ISSUER_CONFIG = ClusterProperty.asServerConfigPropertyName(var8[14]);
                     TOKEN_CACHE_SIZE_CONFIG = ClusterProperty.asServerConfigPropertyName(var8[37]);
                     TOKEN_CACHE_ITEM_LIFETIME_CONFIG = ClusterProperty.asServerConfigPropertyName(var8[30]);
                     JWKS_REFRESH_INTERVAL_CONFIG = ClusterProperty.asServerConfigPropertyName(var8[47]);
                     JWKS_READ_TIMEOUT_CONFIG = ClusterProperty.asServerConfigPropertyName(var8[10]);
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var15;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OBf\u0007\u0001\\\u0010EVv\u001a\u0006|\u001cFOk \rR\u001aDGqVG=\u000e^\u0007IFqs\u001cY\u0010\nlC&\u001cYG\u0004\u0013\"\u0007\u0007Z\u0010D\u0003c%\tX\u0019KAk?\u0001E\f\nTk'\u0000\u0011\u0001BF\"!\r@\u0000OPvs\t_\u0011\nJl'\u001a^\u0006ZFa'\u001b\u0011\u001c^P\"%\t]\u001cNJv*";
                  var4 = "m2\u001dE\u001d\u0018\rk=\u001cC\u001aYSg0\u001cX\u001aD\rh$\u0003B'OBf\u0007\u0001\\\u0010EVv\u001a\u0006|\u001cFOk \rR\u001aDGqVG=\u000e^\u0007IFqs\u001cY\u0010\nlC&\u001cYG\u0004\u0013\"\u0007\u0007Z\u0010D\u0003c%\tX\u0019KAk?\u0001E\f\nTk'\u0000\u0011\u0001BF\"!\r@\u0000OPvs\t_\u0011\nJl'\u001a^\u0006ZFa'\u001b\u0011\u001c^P\"%\t]\u001cNJv*"
                     .length();
                  var1 = '2';
                  var7 = -1;
            }

            var10000 = var2.substring(++var7, var7 + var1);
            var10001 = 0;
         }
      }
   }

   private static char[] b(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 35);
      }

      return var10000;
   }

   private static String a(char[] var0) {
      int var10002 = var0.length;
      char[] var10001 = var0;
      int var10000 = var10002;

      for (int var1 = 0; var10000 > var1; var1++) {
         var10001[var1] = (char)(var10001[var1] ^ switch (var1 % 7) {
            case 0 -> 2;
            case 1 -> 83;
            case 2 -> 104;
            case 3 -> 49;
            case 4 -> 117;
            case 5 -> 42;
            default -> 35;
         });
      }

      return new String(var10001).intern();
   }
}
