package com.l7tech.gateway.common.siteminder;

import com.l7tech.objectmodel.Goid;
import jakarta.persistence.Transient;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class SiteMinderContext {
   private SiteMinderContext.ResourceContextDef a;
   private SiteMinderContext.RealmDef b;
   private SiteMinderContext.SessionDef c;
   private String d = null;
   private List<SiteMinderContext.Attribute> e = new ArrayList<>();
   private List<SiteMinderContext.AuthenticationScheme> f = new ArrayList<>();
   private String g;
   private String h;
   private Object i;
   private String j;
   private String k;
   private SiteMinderConfiguration l;
   private boolean m;
   private String n;
   private static Function<Goid, String> o;
   private static final String[] p;

   public static void setPasswordSupplier(Function<Goid, String> var0) {
      o = var0;
   }

   public SiteMinderContext() {
   }

   protected SiteMinderContext(
      SiteMinderContext var1, SiteMinderContext.SessionDef var2, SiteMinderContext.RealmDef var3, SiteMinderContext.ResourceContextDef var4
   ) {
      this.i = var1.getAgent();
      this.e = new ArrayList<>(var1.getAttrList());
      this.f = new ArrayList<>(var1.getAuthSchemes());
      this.j = var1.getSourceIpAddress();
      this.d = var1.getTransactionId();
      this.g = var1.getSsoToken();
      this.h = var1.getSsoZoneName();
      this.k = var1.getAcoName();
      this.n = var1.getPasswordPolicy();
      this.c = new SiteMinderContext.SessionDef(
         var2.getReason(),
         var2.getIdleTimeout(),
         var2.getMaxTimeout(),
         var2.getCurrentServerTime(),
         var2.getSessionStartTime(),
         var2.getSessionLastTime(),
         var2.getId(),
         var2.getSpec()
      );
      this.b = new SiteMinderContext.RealmDef(var3.getName(), var3.getOid(), var3.getDomOid(), var3.getCredentials(), var3.getFormLocation());
      this.a = new SiteMinderContext.ResourceContextDef(var4.getAgent(), var4.getServer(), var4.getResource(), var4.getAction());
   }

   protected SiteMinderContext(SiteMinderContext var1) {
      this(var1, var1.c, var1.b, var1.a);
   }

   public Object getAgent() {
      return this.i;
   }

   public void setAgent(Object var1) {
      this.i = var1;
   }

   public String getSsoToken() {
      return this.g;
   }

   public void setSsoToken(@Nullable String var1) {
      this.g = var1;
   }

   public String getSsoZoneName() {
      return this.h;
   }

   public void setSsoZoneName(String var1) {
      this.h = var1;
   }

   public SiteMinderContext.ResourceContextDef getResContextDef() {
      return this.a;
   }

   public void setResContextDef(SiteMinderContext.ResourceContextDef var1) {
      this.a = var1;
   }

   public SiteMinderContext.RealmDef getRealmDef() {
      return this.b;
   }

   public void setRealmDef(SiteMinderContext.RealmDef var1) {
      this.b = var1;
   }

   public SiteMinderContext.SessionDef getSessionDef() {
      return this.c;
   }

   public void setSessionDef(SiteMinderContext.SessionDef var1) {
      this.c = var1;
   }

   public String getTransactionId() {
      return this.d;
   }

   public void setTransactionId(String var1) {
      this.d = var1;
   }

   public List<SiteMinderContext.Attribute> getAttrList() {
      return this.e;
   }

   public void setAttrList(List<SiteMinderContext.Attribute> var1) {
      this.e = var1;
   }

   public List<SiteMinderContext.AuthenticationScheme> getAuthSchemes() {
      return this.f;
   }

   public void setAuthSchemes(List<SiteMinderContext.AuthenticationScheme> var1) {
      this.f = var1;
   }

   public String getSourceIpAddress() {
      return this.j;
   }

   public void setSourceIpAddress(@Nullable String var1) {
      this.j = var1;
   }

   public String getAcoName() {
      return this.k;
   }

   public void setAcoName(String var1) {
      this.k = var1;
   }

   public SiteMinderConfiguration getConfig() {
      return this.l;
   }

   public void setConfig(SiteMinderConfiguration var1) {
      this.l = var1;
   }

   public boolean isResourceProtected() {
      return this.m;
   }

   public void setResourceProtected(boolean var1) {
      this.m = var1;
   }

   public String getPasswordPolicy() {
      return this.n;
   }

   public void setPasswordPolicy(String var1) {
      this.n = var1;
   }

   public SiteMinderContext.AdminCredentials getAdminCredentials() {
      return new b(this);
   }

   @Transient
   public List<SiteMinderContext.Attribute> getAcoAttrList() {
      ArrayList var1 = new ArrayList();

      for (SiteMinderContext.Attribute var3 : this.e) {
         if (var3.getName().startsWith(p[1])) {
            var1.add(var3);
         }
      }

      return var1;
   }

   @Transient
   public List<SiteMinderContext.Attribute> getNonAcoAttrList() {
      ArrayList var1 = new ArrayList();

      for (SiteMinderContext.Attribute var3 : this.e) {
         if (!var3.getName().startsWith(p[0])) {
            var1.add(var3);
         }
      }

      return var1;
   }

   @Transient
   public Map<String, SiteMinderContext.Attribute> getAttrMap() {
      HashMap var1 = new HashMap();

      for (SiteMinderContext.Attribute var3 : this.e) {
         var1.put(var3.getName(), var3);
      }

      return var1;
   }

   static {
      String[] var5 = new String[2];
      int var3 = 0;
      String var2 = ".y\u00118*-- r\t.y\u00118*-- r";
      int var4 = ".y\u00118*-- r\t.y\u00118*-- r".length();
      char var1 = '\t';
      int var0 = -1;

      while (true) {
         String var10002 = a(92, a(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            p = var5;
            o = new a();
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

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

      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 -> 51;
            case 1 -> 113;
            case 2 -> 25;
            case 3 -> 54;
            case 4 -> 41;
            case 5 -> 48;
            default -> 50;
         });
      }

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

   public interface AdminCredentials {
      String getUsername();

      String getPassword();
   }

   public static class Attribute {
      public static final String COMMON_ATTRIBUTE_PREFIX;
      public static final String ACO_ATTRIBUTE_PREFIX;
      private final String a;
      private Object b;
      private final int c;
      private final int d;
      private final String e;
      private final byte[] f;
      private final int g;
      private static final String[] h;

      public Attribute(@NotNull String var1, Object var2) {
         if (var1 == null) {
            a(0);
         }

         this(var1, var2, 0, 0, "", 0, new byte[0]);
      }

      public Attribute(@NotNull String var1, Object var2, int var3, int var4, String var5, int var6, byte[] var7) {
         if (var1 == null) {
            a(1);
         }

         super();
         this.a = var1;
         this.b = var2;
         this.c = var6;
         this.d = var4;
         this.e = var5;
         this.g = var3;
         this.f = var7;
      }

      @NotNull
      public String getName() {
         try {
            if (this.a == null) {
               a(2);
            }

            return this.a;
         } catch (IllegalArgumentException var1) {
            throw a(var1);
         }
      }

      public Object getValue() {
         return this.b;
      }

      public String getValueAsString() {
         return (String)this.getValue();
      }

      public int getValueAsInt() {
         try {
            return Integer.parseInt(this.getValueAsString());
         } catch (Exception var2) {
            return 0;
         }
      }

      public void setValue(Object var1) {
         this.b = var1;
      }

      public int getTtl() {
         return this.c;
      }

      public int getId() {
         return this.d;
      }

      public String getOid() {
         return this.e;
      }

      public byte[] getRawValue() {
         return this.f;
      }

      public int getFlags() {
         return this.g;
      }

      @Override
      public String toString() {
         return String.format(h[5], this.a, this.b);
      }

      @Override
      public boolean equals(Object param1) {
         // $VF: Couldn't be decompiled
         // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
         // java.lang.RuntimeException: parsing failure!
         //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
         //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
         //
         // Bytecode:
         // 00: aload 0
         // 01: aload 1
         // 02: if_acmpne 0b
         // 05: bipush 1
         // 06: ireturn
         // 07: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 0a: athrow
         // 0b: aload 1
         // 0c: ifnull 21
         // 0f: aload 0
         // 10: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
         // 13: aload 1
         // 14: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
         // 17: if_acmpeq 27
         // 1a: goto 21
         // 1d: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 20: athrow
         // 21: bipush 0
         // 22: ireturn
         // 23: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 26: athrow
         // 27: aload 1
         // 28: checkcast com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute
         // 2b: astore 2
         // 2c: aload 0
         // 2d: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.d I
         // 30: aload 2
         // 31: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.d I
         // 34: if_icmpeq 3d
         // 37: bipush 0
         // 38: ireturn
         // 39: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 3c: athrow
         // 3d: aload 0
         // 3e: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.g I
         // 41: aload 2
         // 42: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.g I
         // 45: if_icmpeq 4e
         // 48: bipush 0
         // 49: ireturn
         // 4a: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 4d: athrow
         // 4e: aload 0
         // 4f: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a Ljava/lang/String;
         // 52: aload 2
         // 53: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a Ljava/lang/String;
         // 56: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 59: ifne 62
         // 5c: bipush 0
         // 5d: ireturn
         // 5e: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 61: athrow
         // 62: aload 0
         // 63: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.e Ljava/lang/String;
         // 66: ifnull 85
         // 69: aload 0
         // 6a: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.e Ljava/lang/String;
         // 6d: aload 2
         // 6e: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.e Ljava/lang/String;
         // 71: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
         // 74: ifne 8c
         // 77: goto 7e
         // 7a: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 7d: athrow
         // 7e: goto 94
         // 81: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 84: athrow
         // 85: aload 2
         // 86: getfield com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.e Ljava/lang/String;
         // 89: ifnonnull 94
         // 8c: bipush 1
         // 8d: goto 95
         // 90: invokestatic com/l7tech/gateway/common/siteminder/SiteMinderContext$Attribute.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
         // 93: athrow
         // 94: bipush 0
         // 95: ireturn
         // try (0 -> 5): 5 java/lang/IllegalArgumentException
         // try (7 -> 14): 15 java/lang/IllegalArgumentException
         // try (9 -> 19): 19 java/lang/IllegalArgumentException
         // try (24 -> 31): 31 java/lang/IllegalArgumentException
         // try (33 -> 40): 40 java/lang/IllegalArgumentException
         // try (42 -> 50): 50 java/lang/IllegalArgumentException
         // try (52 -> 61): 62 java/lang/IllegalArgumentException
         // try (55 -> 65): 65 java/lang/IllegalArgumentException
         // try (67 -> 72): 72 java/lang/IllegalArgumentException
      }

      @Override
      public int hashCode() {
         int var1 = this.a.hashCode();
         var1 = 31 * var1 + this.d;

         int var10000;
         int var10001;
         label17: {
            try {
               var10000 = 31 * var1;
               if (this.e != null) {
                  var10001 = this.e.hashCode();
                  break label17;
               }
            } catch (IllegalArgumentException var2) {
               throw a(var2);
            }

            var10001 = 0;
         }

         var1 = var10000 + var10001;
         return 31 * var1 + this.g;
      }

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

      static {
         String[] var5 = new String[10];
         int var3 = 0;
         String var2 = "B\u001bA\u0000ir{nuC\u0011Soxfu\u000b\u0007\t\"d\"8[\u0007S'ym!\u000e\u0006Bsbp;\u000e\u001aRk{\u0004l4C\u0011>C'I\u0001JbyvuH\u001bU'WL:Z:Rk{\"%O\u0006Fjrv0\\T\u0000\"d%uA\u0012\u0007\"d,p]TJrdvu@\u001bS'ugu@\u0001Kk\u0007e0Z:Fjr\u0005C\u0001z&x\u0007*p]X\u0002t>@a:C[K0cg6F[@fcg\"O\r\bdxo8A\u001a\bt~v0C\u001dIcrpz}\u001dSbZk;J\u0011UDxl!K\fS#Vv!\\\u001dErcg\tC\u0001z&xFTM\n";
         int var4 = "B\u001bA\u0000ir{nuC\u0011Soxfu\u000b\u0007\t\"d\"8[\u0007S'ym!\u000e\u0006Bsbp;\u000e\u001aRk{\u0004l4C\u0011>C'I\u0001JbyvuH\u001bU'WL:Z:Rk{\"%O\u0006Fjrv0\\T\u0000\"d%uA\u0012\u0007\"d,p]TJrdvu@\u001bS'ugu@\u0001Kk\u0007e0Z:Fjr\u0005C\u0001z&x\u0007*p]X\u0002t>@a:C[K0cg6F[@fcg\"O\r\bdxo8A\u001a\bt~v0C\u001dIcrpz}\u001dSbZk;J\u0011UDxl!K\fS#Vv!\\\u001dErcg\tC\u0001z&xFTM\n"
            .length();
         char var1 = '*';
         int var7 = -1;

         label24:
         while (true) {
            byte var10000 = 113;
            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) {
                        h = var5;
                        String[] var9 = h;
                        ACO_ATTRIBUTE_PREFIX = h[7];
                        COMMON_ATTRIBUTE_PREFIX = var9[4];
                        return;
                     }

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

                     var2 = "{ YAQ*y},\\AZ|y}8U\u0017\u0012~bu\"[\u0000\u0012ndl*Y\u0007Syhj`g\u0007Ix@q!P\u000bO^bv;Q\u0016I9Ll;F\u0007_hy}\u0006$&Z\u0007I#";
                     var4 = "{ YAQ*y},\\AZ|y}8U\u0017\u0012~bu\"[\u0000\u0012ndl*Y\u0007Syhj`g\u0007Ix@q!P\u000bO^bv;Q\u0016I9Ll;F\u0007_hy}\u0006$&Z\u0007I#"
                        .length();
                     var1 = '@';
                     var7 = -1;
               }

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

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

         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 -> 115;
               case 1 -> 36;
               case 2 -> 95;
               case 3 -> 5;
               case 4 -> 86;
               case 5 -> 118;
               default -> 102;
            });
         }

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

   public enum AuthenticationScheme {
      NONE,
      ALLOWSAVE,
      BASIC,
      FORM,
      DIGEST,
      METADATA,
      NTCHALLENGE,
      SAML,
      SSL,
      X509CERT,
      X509CERTISSUEDN,
      X509CERTUSERDN,
      XMLDOC,
      XMLDSIG,
      XKMS,
      XMLWSSEC,
      JWT;

      public static SiteMinderContext.AuthenticationScheme findValue(String var0) {
         for (SiteMinderContext.AuthenticationScheme var4 : values()) {
            if (var4.toString().equalsIgnoreCase(var0)) {
               return var4;
            }
         }

         return null;
      }

      // $VF: Failed to inline enum fields
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      static {
         String[] var0 = new String[17];
         int var4 = 0;
         String var3 = "\u0010^F\u0001\b_s\u001c\u0004\u001bT@\r\u0003\u0017LF\u0006\u0005V^\u0004\u0003]\u000b\u0013OQ\b\rRk\u0018UU\u0005\u000e\u0005.\"y\u000f[u\tNA\u0005\u001eZi\b\u0005.\"y\u000f[u\t\u000f\u0005.\"y\u000f[u\tRA\u0013\u0019[c\u0013\u0006\u0019RU\u0005\u001fJ\t\u001cW^\u000f\u001bMf\u000b^\u0005\u001fZA\t\u000f\b\u0005V^\u0017\u001fMb\u001e\u0007\u0005V^\u0004\u001fW`\u0004\u000eZ_\f\u0004\u0013T\\\u0005";
         int var5 = "\u0010^F\u0001\b_s\u001c\u0004\u001bT@\r\u0003\u0017LF\u0006\u0005V^\u0004\u0003]\u000b\u0013OQ\b\rRk\u0018UU\u0005\u000e\u0005.\"y\u000f[u\tNA\u0005\u001eZi\b\u0005.\"y\u000f[u\t\u000f\u0005.\"y\u000f[u\tRA\u0013\u0019[c\u0013\u0006\u0019RU\u0005\u001fJ\t\u001cW^\u000f\u001bMf\u000b^\u0005\u001fZA\t\u000f\b\u0005V^\u0017\u001fMb\u001e\u0007\u0005V^\u0004\u001fW`\u0004\u000eZ_\f\u0004\u0013T\\\u0005"
            .length();
         char var2 = '\b';
         int var7 = -1;

         label25:
         while (true) {
            byte var10000 = 52;
            String var10001 = var3.substring(++var7, var7 + var2);
            byte var10002 = -1;

            while (true) {
               String var8 = a(var10000, a(var10001));
               switch (var10002) {
                  case 0:
                     var0[var4++] = var8;
                     if ((var7 += var2) >= var5) {
                        NONE = new SiteMinderContext.AuthenticationScheme();
                        ALLOWSAVE = new SiteMinderContext.AuthenticationScheme();
                        BASIC = new SiteMinderContext.AuthenticationScheme();
                        FORM = new SiteMinderContext.AuthenticationScheme();
                        DIGEST = new SiteMinderContext.AuthenticationScheme();
                        METADATA = new SiteMinderContext.AuthenticationScheme();
                        NTCHALLENGE = new SiteMinderContext.AuthenticationScheme();
                        SAML = new SiteMinderContext.AuthenticationScheme();
                        SSL = new SiteMinderContext.AuthenticationScheme();
                        X509CERT = new SiteMinderContext.AuthenticationScheme();
                        X509CERTISSUEDN = new SiteMinderContext.AuthenticationScheme();
                        X509CERTUSERDN = new SiteMinderContext.AuthenticationScheme();
                        XMLDOC = new SiteMinderContext.AuthenticationScheme();
                        XMLDSIG = new SiteMinderContext.AuthenticationScheme();
                        XKMS = new SiteMinderContext.AuthenticationScheme();
                        XMLWSSEC = new SiteMinderContext.AuthenticationScheme();
                        JWT = new SiteMinderContext.AuthenticationScheme();
                        return;
                     }

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

                     var3 = "5`o#\u0003>xn";
                     var5 = "5`o#\u0003>xn".length();
                     var2 = 4;
                     var7 = -1;
               }

               var10000 = 4;
               var10001 = var3.substring(++var7, var7 + var2);
               var10002 = 0;
            }
         }
      }

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

         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 -> 105;
               case 1 -> 47;
               case 2 -> 38;
               case 3 -> 116;
               case 4 -> 120;
               case 5 -> 42;
               default -> 19;
            });
         }

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

   public static class RealmDef {
      private String a;
      private String b;
      private String c;
      private int d;
      private String e;

      public RealmDef() {
      }

      public RealmDef(String var1, String var2, String var3, int var4, String var5) {
         this.a = var1;
         this.c = var2;
         this.b = var3;
         this.d = var4;
         this.e = var5;
      }

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

      public void setName(String var1) {
         this.a = var1;
      }

      public String getDomOid() {
         return this.b;
      }

      public void setDomOid(String var1) {
         this.b = var1;
      }

      public String getOid() {
         return this.c;
      }

      public void setOid(String var1) {
         this.c = var1;
      }

      public int getCredentials() {
         return this.d;
      }

      public void setCredentials(int var1) {
         this.d = var1;
      }

      public String getFormLocation() {
         return this.e;
      }

      public void setFormLocation(String var1) {
         this.e = var1;
      }
   }

   public static class ResourceContextDef {
      private String a;
      private String b;
      private String c;
      private String d;

      public ResourceContextDef() {
      }

      public ResourceContextDef(String var1, String var2, String var3, String var4) {
         this.a = var1;
         this.b = var2;
         this.c = var3;
         this.d = var4;
      }

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

      public void setAgent(String var1) {
         this.a = var1;
      }

      public String getServer() {
         return this.b;
      }

      public void setServer(String var1) {
         this.b = var1;
      }

      public String getResource() {
         return this.c;
      }

      public void setResource(String var1) {
         this.c = var1;
      }

      public String getAction() {
         return this.d;
      }

      public void setAction(String var1) {
         this.d = var1;
      }
   }

   public static class SessionDef {
      private int a;
      private int b;
      private int c;
      private int d;
      private int e;
      private int f;
      private String g;
      private String h;

      public SessionDef() {
      }

      public SessionDef(int var1, int var2, int var3, int var4, int var5, int var6, String var7, String var8) {
         this.a = var1;
         this.b = var2;
         this.c = var3;
         this.d = var4;
         this.f = var6;
         this.e = var5;
         this.g = var7;
         this.h = var8;
      }

      public int getReason() {
         return this.a;
      }

      public void setReason(int var1) {
         this.a = var1;
      }

      public int getIdleTimeout() {
         return this.b;
      }

      public void setIdleTimeout(int var1) {
         this.b = var1;
      }

      public int getMaxTimeout() {
         return this.c;
      }

      public void setMaxTimeout(int var1) {
         this.c = var1;
      }

      public int getCurrentServerTime() {
         return this.d;
      }

      public void setCurrentServerTime(int var1) {
         this.d = var1;
      }

      public int getSessionStartTime() {
         return this.e;
      }

      public void setSessionStartTime(int var1) {
         this.e = var1;
      }

      public int getSessionLastTime() {
         return this.f;
      }

      public void setSessionLastTime(int var1) {
         this.f = var1;
      }

      public String getId() {
         return this.g;
      }

      public void setId(String var1) {
         this.g = var1;
      }

      public String getSpec() {
         return this.h;
      }

      public void setSpec(String var1) {
         this.h = var1;
      }
   }

   public static class SessionExtDef {
      private String a;
      private String b;
      private int c;
      private int d;
      private int e;

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

      public void setUserDirOid(String var1) {
         this.a = var1;
      }

      public String getUserDn() {
         return this.b;
      }

      public void setUserDn(String var1) {
         this.b = var1;
      }

      public int getLastPasswordChange() {
         return this.c;
      }

      public void setLastPasswordChange(int var1) {
         this.c = var1;
      }

      public int getPasswordLoginDaysGrace() {
         return this.d;
      }

      public void setPasswordLoginDaysGrace(int var1) {
         this.d = var1;
      }

      public void setPasswordExpirationDelay(int var1) {
         this.e = var1;
      }

      public int getPasswordExpirationDelay() {
         return this.e;
      }
   }
}
