package com.l7tech.server.identity;

import com.l7tech.identity.IdentityProvider;
import com.l7tech.identity.IdentityProviderConfig;
import com.l7tech.identity.InvalidIdProviderCfgException;
import com.l7tech.server.Lifecycle;
import com.l7tech.server.LifecycleException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.DisposableBean;

public class GenericIdentityProviderFactorySpi implements IdentityProviderFactorySpi, BeanFactoryAware {
   private static final Logger a;
   private final String b;
   private final String c;
   private BeanFactory d;
   private static final String[] e;

   public GenericIdentityProviderFactorySpi(String var1, String var2) {
      this.b = var1;
      this.c = var2;
   }

   public void setBeanFactory(BeanFactory var1) throws BeansException {
      this.d = var1;
   }

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

   @Override
   public IdentityProvider createIdentityProvider(IdentityProviderConfig var1, boolean var2) throws InvalidIdProviderCfgException {
      IdentityProvider var3 = (IdentityProvider)this.d.getBean(this.c, IdentityProvider.class);

      try {
         if (!(var3 instanceof ConfigurableIdentityProvider)) {
            throw new InvalidIdProviderCfgException(e[2]);
         }
      } catch (LifecycleException var10) {
         throw a(var10);
      }

      ConfigurableIdentityProvider var4 = (ConfigurableIdentityProvider)var3;

      try {
         var4.setIdentityProviderConfig(var1);
         if (!var2 || !(var3 instanceof Lifecycle)) {
            return var3;
         }
      } catch (LifecycleException var9) {
         throw a(var9);
      }

      Lifecycle var5 = (Lifecycle)var3;

      try {
         var5.start();
      } catch (LifecycleException var8) {
         Logger var10000 = a;
         Level var10001 = Level.WARNING;
         String var10002 = this.a(var3);
         String[] var7 = e;
         var10000.log(var10001, var7[4] + var10002 + var7[1], var8);
      }

      return var3;
   }

   @Override
   public void destroyIdentityProvider(IdentityProvider var1) {
      if (var1 instanceof DisposableBean var2) {
         try {
            var2.destroy();
         } catch (Exception var6) {
            Logger var10000 = a;
            Level var10001 = Level.WARNING;
            String var10002 = this.a(var1);
            String[] var4 = e;
            var10000.log(var10001, var4[5] + var10002 + var4[3], var6);
         }
      }

      if (var1 instanceof Lifecycle var7) {
         try {
            var7.stop();
         } catch (LifecycleException var5) {
            Logger var9 = a;
            Level var10 = Level.WARNING;
            String var11 = this.a(var1);
            String[] var8 = e;
            var9.log(var10, var8[6] + var11 + var8[3], var5);
         }
      }
   }

   private String a(IdentityProvider var1) {
      return var1.getConfig().getName() + e[0] + var1.getConfig().getId() + ")";
   }

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "8Rg\u0002?T:Q\u001e!x>\u001caa*6y<\u001cq}\bdr%\u0010f8\u0014+bj\u0006`h\n+d>Uvw\u0014\"\u007f-\u0000gy\u000e-y$U|v\u000e!d,\u0014v}T\u0002?T\"]\b6y8Ufl\u001b6b#\u001br8\u0013 s$\u0001|l\u0003df8\u001acq\u001e!djR";
      int var4 = "8Rg\u0002?T:Q\u001e!x>\u001caa*6y<\u001cq}\bdr%\u0010f8\u0014+bj\u0006`h\n+d>Uvw\u0014\"\u007f-\u0000gy\u000e-y$U|v\u000e!d,\u0014v}T\u0002?T\"]\b6y8Ufl\u001b6b#\u001br8\u0013 s$\u0001|l\u0003df8\u001acq\u001e!djR"
         .length();
      char var1 = 3;
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     e = var5;
                     a = Logger.getLogger(GenericIdentityProviderFactorySpi.class.getName());
                     return;
                  }

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

                  var2 = "f?\u000e_\r;\u001eG>OY\u0004-JA>\u0016\u001d\u00156[\u00138\u000bX\u000f*WG(OM\u00131HZ5\nOAy\"v#\u001dR\u0013~MG>\u001fM\b0Y\u00138\u000bX\u000f*WG(OM\u00131HZ5\nOAy";
                  var4 = "f?\u000e_\r;\u001eG>OY\u0004-JA>\u0016\u001d\u00156[\u00138\u000bX\u000f*WG(OM\u00131HZ5\nOAy\"v#\u001dR\u0013~MG>\u001fM\b0Y\u00138\u000bX\u000f*WG(OM\u00131HZ5\nOAy"
                     .length();
                  var1 = ')';
                  var7 = -1;
            }

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

   private static LifecycleException a(LifecycleException var0) {
      return var0;
   }

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

      return var10000;
   }

   private static String a(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 -> 83;
            case 1 -> 49;
            case 2 -> 15;
            case 3 -> 93;
            case 4 -> 1;
            case 5 -> 62;
            default -> 94;
         });
      }

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