package com.l7tech.policy.assertion.identity;

import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.migration.Migration;
import com.l7tech.objectmodel.migration.MigrationMappingSelection;
import com.l7tech.objectmodel.migration.PropertyResolver;
import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.DefaultAssertionMetadata;
import com.l7tech.policy.assertion.IdentityTarget;
import com.l7tech.policy.assertion.MessageTargetableAssertion;
import com.l7tech.policy.variable.DataType;
import com.l7tech.policy.variable.VariableMetadata;

public class AuthenticationAssertion extends IdentityAssertion {
   public static final String LDAP_PROVIDER_ERROR_LOGIN;
   public static final String LDAP_PROVIDER_ERROR_MESSAGE;
   private String loggingIdentity;
   static final long serialVersionUID = -2514209276785433037L;
   private static final String[] c;

   @Override
   public void setIdentityProviderOid(Goid var1) {
      super.setIdentityProviderOid(var1);
      this.updateLoggingIdentity();
   }

   private void updateLoggingIdentity() {
      Goid var1 = this.getIdentityProviderOid();
      if (var1 == null) {
         String[] var2 = c;
         this.loggingIdentity = var2[9];
      } else {
         this.loggingIdentity = c[10] + var1;
      }
   }

   @Override
   public String loggingIdentity() {
      return this.loggingIdentity;
   }

   @Override
   public Goid getIdentityProviderOid() {
      return super.getIdentityProviderOid();
   }

   @Migration(mapName = MigrationMappingSelection.REQUIRED, export = false, resolver = PropertyResolver.Type.ASSERTION)
   @Override
   public EntityHeader[] getEntitiesUsed() {
      return super.getEntitiesUsed();
   }

   @Override
   public IdentityTarget getIdentityTarget() {
      return new IdentityTarget(IdentityTarget.TargetIdentityType.PROVIDER, this.getIdentityProviderOid());
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = c;
      var1.put(var2[3], var2[15]);
      var1.put(var2[2], var2[8]);
      var1.put(var2[12], new String[]{var2[18]});
      var1.put(var2[20], var2[4]);
      var1.put(var2[21], var2[19]);
      var1.put(var2[11], var2[17]);
      var1.put(var2[6], var2[7]);
      var1.put(var2[1], var2[13]);
      return var1;
   }

   @Override
   protected MessageTargetableAssertion.VariablesSet doGetVariablesSet() {
      MessageTargetableAssertion.VariablesSet var10000 = super.doGetVariablesSet();
      VariableMetadata[] var10001 = new VariableMetadata[2];
      String[] var1 = c;
      var10001[0] = new VariableMetadata(var1[0], true, true, null, false, DataType.STRING);
      var10001[1] = new VariableMetadata(var1[5], true, true, null, false, DataType.STRING);
      return var10000.withVariables(var10001);
   }

   static {
      String[] var5 = new String[22];
      int var3 = 0;
      String var2 = "\u001e0E\f\u0000S\u0013\u0018&\u001bN\nF\b\u0019\u0014\u0007&ZR\u0000S\u0015\u001e1Fc\u0006U\b\u0018:|A\nO\u000b\u00131FA\u0017H\u0011\u0003=ZL\t\u0004<ZP\u0011o\u0000\u001a1'\u0014;X\r\t\u0016\u0015\u00127]\r\u0006N\u000f\u0004;YGJS\u0004\u0004;@P\u0006D\u0012X!FG\u0017\u0010WY$[E\u0011\u001e0E\f\u0000S\u0013\u0018&\u001bO\u0000R\u0012\u00163P\u0014\u0007&ZR\u0000S\u0015\u001e1Fc\u0006U\b\u0018:{C\bD'4<TL\u0002DA6!AJ\u0000O\u0015\u001e7TV\fN\u000fW\u001dQG\u000bU\b\u0003-\u0015r\u0017N\u0017\u001e0PPE6!AJ\u0000O\u0015\u001e7TV\u0000\u0001\u0013\u0012%@G\u0016U\u000e\u0005tVP\u0000E\u0004\u0019 \\C\tRA\u0002'\\L\u0002\u0001\u0000W'PN\u0000B\u0015\u00120\u0015k\u0001D\u000f\u0003=A[Eq\u0013\u0018\"\\F\u0000S\u0019\u00131SC\u0010M\u0015W=QG\u000bU\b\u0003-\u0015R\u0017N\u0017\u001e0PP\u0015\u001e0PL\u0011H\u0015\u000etEP\nW\b\u00131G\u0002,eA\u0013\u0007;YK\u0006X/\u00180Pa\t@\u0012\u0004:TO\u0000\u000e\u00075YG\u0011U\u00041;YF\u0000S\u0012-\u0014;X\r\t\u0016\u0015\u00127]\r\u0006N\u000f\u0004;YGJS\u0004\u0004;@P\u0006D\u0012X\u0004GM\u0015D\u0013\u0003=PQT\u0017O\u0010=S\u0011\u001e0E\f\u0000S\u0013\u0018&\u001bO\u0000R\u0012\u00163P&6!AJ\u0000O\u0015\u001e7TV\u0000\u0001 \u00105\\L\u0016UA>0PL\u0011H\u0015\u000eteP\nW\b\u00131G\u000f\u001e0E\f\u0000S\u0013\u0018&\u001bN\nF\b\u0019@\u0014;X\f\t\u0016\u0015\u00127]\f\u0006N\u000f\u0004;YGKU\u0013\u00121\u001bR\nM\b\u0014-\u001bc\u0010U\t\u0012:AK\u0006@\u0015\u001e;[c\u0016R\u0004\u0005 \\M\u000bq\u000e\u001b=V[+N\u0005\u0012\r\u00167VG\u0016R\"\u0018:AP\nMF\u0014;X\f\t\u0016\u0015\u00127]\f\u0006N\u000f\u0004;YGKU\u0013\u00121\u001bR\nM\b\u0014-\u001bC\u0001W\b\u00141\u001bc\u0001E \u0002 ]G\u000bU\b\u00145AK\nO \u0004'PP\u0011H\u000e\u0019\u0015QT\fB\u0004";
      int var4 = "\u001e0E\f\u0000S\u0013\u0018&\u001bN\nF\b\u0019\u0014\u0007&ZR\u0000S\u0015\u001e1Fc\u0006U\b\u0018:|A\nO\u000b\u00131FA\u0017H\u0011\u0003=ZL\t\u0004<ZP\u0011o\u0000\u001a1'\u0014;X\r\t\u0016\u0015\u00127]\r\u0006N\u000f\u0004;YGJS\u0004\u0004;@P\u0006D\u0012X!FG\u0017\u0010WY$[E\u0011\u001e0E\f\u0000S\u0013\u0018&\u001bO\u0000R\u0012\u00163P\u0014\u0007&ZR\u0000S\u0015\u001e1Fc\u0006U\b\u0018:{C\bD'4<TL\u0002DA6!AJ\u0000O\u0015\u001e7TV\fN\u000fW\u001dQG\u000bU\b\u0003-\u0015r\u0017N\u0017\u001e0PPE6!AJ\u0000O\u0015\u001e7TV\u0000\u0001\u0013\u0012%@G\u0016U\u000e\u0005tVP\u0000E\u0004\u0019 \\C\tRA\u0002'\\L\u0002\u0001\u0000W'PN\u0000B\u0015\u00120\u0015k\u0001D\u000f\u0003=A[Eq\u0013\u0018\"\\F\u0000S\u0019\u00131SC\u0010M\u0015W=QG\u000bU\b\u0003-\u0015R\u0017N\u0017\u001e0PP\u0015\u001e0PL\u0011H\u0015\u000etEP\nW\b\u00131G\u0002,eA\u0013\u0007;YK\u0006X/\u00180Pa\t@\u0012\u0004:TO\u0000\u000e\u00075YG\u0011U\u00041;YF\u0000S\u0012-\u0014;X\r\t\u0016\u0015\u00127]\r\u0006N\u000f\u0004;YGJS\u0004\u0004;@P\u0006D\u0012X\u0004GM\u0015D\u0013\u0003=PQT\u0017O\u0010=S\u0011\u001e0E\f\u0000S\u0013\u0018&\u001bO\u0000R\u0012\u00163P&6!AJ\u0000O\u0015\u001e7TV\u0000\u0001 \u00105\\L\u0016UA>0PL\u0011H\u0015\u000eteP\nW\b\u00131G\u000f\u001e0E\f\u0000S\u0013\u0018&\u001bN\nF\b\u0019@\u0014;X\f\t\u0016\u0015\u00127]\f\u0006N\u000f\u0004;YGKU\u0013\u00121\u001bR\nM\b\u0014-\u001bc\u0010U\t\u0012:AK\u0006@\u0015\u001e;[c\u0016R\u0004\u0005 \\M\u000bq\u000e\u001b=V[+N\u0005\u0012\r\u00167VG\u0016R\"\u0018:AP\nMF\u0014;X\f\t\u0016\u0015\u00127]\f\u0006N\u000f\u0004;YGKU\u0013\u00121\u001bR\nM\b\u0014-\u001bC\u0001W\b\u00141\u001bc\u0001E \u0002 ]G\u000bU\b\u00145AK\nO \u0004'PP\u0011H\u000e\u0019\u0015QT\fB\u0004"
         .length();
      char var1 = 15;
      int var7 = -1;

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

         while (true) {
            String var8 = c(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     String[] var9 = c;
                     LDAP_PROVIDER_ERROR_LOGIN = c[16];
                     LDAP_PROVIDER_ERROR_MESSAGE = var9[14];
                     return;
                  }

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

                  var2 = "aS?!w3b_]7!J$h\u007f\u0015a]?-`>FuD:'f\u0004kpA *b*b";
                  var4 = "aS?!w3b_]7!J$h\u007f\u0015a]?-`>FuD:'f\u0004kpA *b*b".length();
                  var1 = 15;
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String c(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 42;
            case 1 -> 9;
            case 2 -> 104;
            case 3 -> 127;
            case 4 -> 56;
            case 5 -> 124;
            default -> 60;
         });
      }

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