public final class com.sun.security.sasl.util.PolicyUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.security.sasl.util.PolicyUtils
  super_class: java.lang.Object
{
  public static final int NOPLAINTEXT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int NOACTIVE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int NODICTIONARY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int FORWARD_SECRECY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int NOANONYMOUS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int PASS_CREDENTIALS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.security.sasl.util.PolicyUtils this
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            return
        end local 0 // com.sun.security.sasl.util.PolicyUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/security/sasl/util/PolicyUtils;

  public static boolean checkPolicy(int, java.util.Map<java.lang.String, ?>);
    descriptor: (ILjava/util/Map;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int flags
        start local 1 // java.util.Map props
         0: .line 57
            aload 1 /* props */
            ifnonnull 2
         1: .line 58
            iconst_1
            ireturn
         2: .line 61
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 1 /* props */
            ldc "javax.security.sasl.policy.noplaintext"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 62
            iload 0 /* flags */
            iconst_1
            iand
            ifne 5
         4: .line 63
            iconst_0
            ireturn
         5: .line 65
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 1 /* props */
            ldc "javax.security.sasl.policy.noactive"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 66
            iload 0 /* flags */
            iconst_2
            iand
            ifne 8
         7: .line 67
            iconst_0
            ireturn
         8: .line 69
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 1 /* props */
            ldc "javax.security.sasl.policy.nodictionary"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 11
         9: .line 70
            iload 0 /* flags */
            iconst_4
            iand
            ifne 11
        10: .line 71
            iconst_0
            ireturn
        11: .line 73
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 1 /* props */
            ldc "javax.security.sasl.policy.noanonymous"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 14
        12: .line 74
            iload 0 /* flags */
            bipush 16
            iand
            ifne 14
        13: .line 75
            iconst_0
            ireturn
        14: .line 77
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 1 /* props */
            ldc "javax.security.sasl.policy.forward"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 78
            iload 0 /* flags */
            bipush 8
            iand
            ifne 17
        16: .line 79
            iconst_0
            ireturn
        17: .line 81
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 1 /* props */
            ldc "javax.security.sasl.policy.credentials"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 20
        18: .line 82
            iload 0 /* flags */
            sipush 512
            iand
            ifne 20
        19: .line 83
            iconst_0
            ireturn
        20: .line 86
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.util.Map props
        end local 0 // int flags
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   21     0  flags  I
            0   21     1  props  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (ILjava/util/Map<Ljava/lang/String;*>;)Z
    MethodParameters:
       Name  Flags
      flags  
      props  

  public static java.lang.String[] filterMechs(java.lang.String[], int[], java.util.Map<java.lang.String, ?>);
    descriptor: ([Ljava/lang/String;[ILjava/util/Map;)[Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.lang.String[] mechs
        start local 1 // int[] policies
        start local 2 // java.util.Map props
         0: .line 97
            aload 2 /* props */
            ifnonnull 2
         1: .line 98
            aload 0 /* mechs */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
         2: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* mechs */
            arraylength
            newarray 4
            astore 3 /* passed */
        start local 3 // boolean[] passed
         3: .line 102
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         4: .line 103
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 9
         6: .line 104
      StackMap locals: boolean[] int int
      StackMap stack:
            aload 3 /* passed */
            iload 5 /* i */
            aload 1 /* policies */
            iload 5 /* i */
            iaload
            aload 2 /* props */
            invokestatic com.sun.security.sasl.util.PolicyUtils.checkPolicy:(ILjava/util/Map;)Z
            dup_x2
            bastore
            ifeq 8
         7: .line 105
            iinc 4 /* count */ 1
         8: .line 103
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 0 /* mechs */
            arraylength
            if_icmplt 6
        end local 5 // int i
        10: .line 108
            iload 4 /* count */
            anewarray java.lang.String
            astore 5 /* answer */
        start local 5 // java.lang.String[] answer
        11: .line 109
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        12: iconst_0
            istore 7 /* j */
        start local 7 // int j
        13: goto 17
        14: .line 110
      StackMap locals: java.lang.String[] int[] java.util.Map boolean[] int java.lang.String[] int int
      StackMap stack:
            aload 3 /* passed */
            iload 6 /* i */
            baload
            ifeq 16
        15: .line 111
            aload 5 /* answer */
            iload 7 /* j */
            iinc 7 /* j */ 1
            aload 0 /* mechs */
            iload 6 /* i */
            aaload
            aastore
        16: .line 109
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 0 /* mechs */
            arraylength
            if_icmplt 14
        end local 7 // int j
        end local 6 // int i
        18: .line 115
            aload 5 /* answer */
            areturn
        end local 5 // java.lang.String[] answer
        end local 4 // int count
        end local 3 // boolean[] passed
        end local 2 // java.util.Map props
        end local 1 // int[] policies
        end local 0 // java.lang.String[] mechs
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0     mechs  [Ljava/lang/String;
            0   19     1  policies  [I
            0   19     2     props  Ljava/util/Map<Ljava/lang/String;*>;
            3   19     3    passed  [Z
            4   19     4     count  I
            5   10     5         i  I
           11   19     5    answer  [Ljava/lang/String;
           12   18     6         i  I
           13   18     7         j  I
    Signature: ([Ljava/lang/String;[ILjava/util/Map<Ljava/lang/String;*>;)[Ljava/lang/String;
    MethodParameters:
          Name  Flags
      mechs     
      policies  
      props     
}
SourceFile: "PolicyUtils.java"