public class com.sun.security.auth.module.JndiLoginModule implements javax.security.auth.spi.LoginModule
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.security.auth.module.JndiLoginModule
super_class: java.lang.Object
{
public final java.lang.String USER_PROVIDER;
descriptor: Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
ConstantValue: "user.provider.url"
public final java.lang.String GROUP_PROVIDER;
descriptor: Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
ConstantValue: "group.provider.url"
private boolean debug;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean strongDebug;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String userProvider;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String groupProvider;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean useFirstPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean tryFirstPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean storePass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearPass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean succeeded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean commitSucceeded;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String username;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private char[] password;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
javax.naming.directory.DirContext ctx;
descriptor: Ljavax/naming/directory/DirContext;
flags: (0x0000)
private com.sun.security.auth.UnixPrincipal userPrincipal;
descriptor: Lcom/sun/security/auth/UnixPrincipal;
flags: (0x0002) ACC_PRIVATE
private com.sun.security.auth.UnixNumericUserPrincipal UIDPrincipal;
descriptor: Lcom/sun/security/auth/UnixNumericUserPrincipal;
flags: (0x0002) ACC_PRIVATE
private com.sun.security.auth.UnixNumericGroupPrincipal GIDPrincipal;
descriptor: Lcom/sun/security/auth/UnixNumericGroupPrincipal;
flags: (0x0002) ACC_PRIVATE
private java.util.LinkedList<com.sun.security.auth.UnixNumericGroupPrincipal> supplementaryGroups;
descriptor: Ljava/util/LinkedList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/LinkedList<Lcom/sun/security/auth/UnixNumericGroupPrincipal;>;
private javax.security.auth.Subject subject;
descriptor: Ljavax/security/auth/Subject;
flags: (0x0002) ACC_PRIVATE
private javax.security.auth.callback.CallbackHandler callbackHandler;
descriptor: Ljavax/security/auth/callback/CallbackHandler;
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.lang.String, java.lang.Object> sharedState;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private java.util.Map<java.lang.String, ?> options;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;*>;
private static final java.lang.String CRYPT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "{crypt}"
private static final java.lang.String USER_PWD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "userPassword"
private static final java.lang.String USER_UID;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "uidNumber"
private static final java.lang.String USER_GID;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "gidNumber"
private static final java.lang.String GROUP_ID;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "gidNumber"
private static final java.lang.String NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "javax.security.auth.login.name"
private static final java.lang.String PWD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "javax.security.auth.login.password"
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc "user.provider.url"
putfield com.sun.security.auth.module.JndiLoginModule.USER_PROVIDER:Ljava/lang/String;
2: aload 0
ldc "group.provider.url"
putfield com.sun.security.auth.module.JndiLoginModule.GROUP_PROVIDER:Ljava/lang/String;
3: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.debug:Z
4: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.strongDebug:Z
5: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.useFirstPass:Z
6: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.tryFirstPass:Z
7: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.storePass:Z
8: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.clearPass:Z
9: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
10: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.commitSucceeded:Z
11: aload 0
12: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/security/auth/module/JndiLoginModule;
public void initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ?>);
descriptor: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
1: aload 0
aload 2
putfield com.sun.security.auth.module.JndiLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
2: aload 0
aload 3
putfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
3: aload 0
aload 4
putfield com.sun.security.auth.module.JndiLoginModule.options:Ljava/util/Map;
4: aload 0
ldc "true"
aload 4
ldc "debug"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
putfield com.sun.security.auth.module.JndiLoginModule.debug:Z
5: aload 0
6: ldc "true"
aload 4
ldc "strongDebug"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
7: putfield com.sun.security.auth.module.JndiLoginModule.strongDebug:Z
8: aload 0
aload 4
ldc "user.provider.url"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.JndiLoginModule.userProvider:Ljava/lang/String;
9: aload 0
aload 4
ldc "group.provider.url"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.JndiLoginModule.groupProvider:Ljava/lang/String;
10: aload 0
11: ldc "true"
aload 4
ldc "tryFirstPass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
12: putfield com.sun.security.auth.module.JndiLoginModule.tryFirstPass:Z
13: aload 0
14: ldc "true"
aload 4
ldc "useFirstPass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
15: putfield com.sun.security.auth.module.JndiLoginModule.useFirstPass:Z
16: aload 0
17: ldc "true"
aload 4
ldc "storePass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
18: putfield com.sun.security.auth.module.JndiLoginModule.storePass:Z
19: aload 0
20: ldc "true"
aload 4
ldc "clearPass"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
21: putfield com.sun.security.auth.module.JndiLoginModule.clearPass:Z
22: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/security/auth/module/JndiLoginModule;
0 23 1 subject Ljavax/security/auth/Subject;
0 23 2 callbackHandler Ljavax/security/auth/callback/CallbackHandler;
0 23 3 sharedState Ljava/util/Map<Ljava/lang/String;*>;
0 23 4 options Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map<Ljava/lang/String;*>;Ljava/util/Map<Ljava/lang/String;*>;)V
MethodParameters:
Name Flags
subject
callbackHandler
sharedState
options
public boolean login();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userProvider:Ljava/lang/String;
ifnonnull 4
1: new javax.security.auth.login.LoginException
dup
2: ldc "Error: Unable to locate JNDI user provider"
3: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.groupProvider:Ljava/lang/String;
ifnonnull 8
5: new javax.security.auth.login.LoginException
dup
6: ldc "Error: Unable to locate JNDI group provider"
7: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 15
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] user provider: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userProvider:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] group provider: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.groupProvider:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.tryFirstPass:Z
ifeq 28
16: aload 0
iconst_1
invokevirtual com.sun.security.auth.module.JndiLoginModule.attemptAuthentication:(Z)V
17: aload 0
iconst_1
putfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
18: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 20
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] tryFirstPass succeeded"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: StackMap locals:
StackMap stack:
iconst_1
ireturn
21: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
astore 1
start local 1 22: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
23: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 39
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] tryFirstPass failed with:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
25: aload 1
invokevirtual javax.security.auth.login.LoginException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 1 27: goto 39
StackMap locals:
StackMap stack:
28: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.useFirstPass:Z
ifeq 39
29: aload 0
iconst_1
invokevirtual com.sun.security.auth.module.JndiLoginModule.attemptAuthentication:(Z)V
30: aload 0
iconst_1
putfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
31: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 33
32: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] useFirstPass succeeded"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
33: StackMap locals:
StackMap stack:
iconst_1
ireturn
34: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
astore 1
start local 1 35: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
36: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 38
37: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] useFirstPass failed"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
38: StackMap locals: javax.security.auth.login.LoginException
StackMap stack:
aload 1
athrow
end local 1 39: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.sun.security.auth.module.JndiLoginModule.attemptAuthentication:(Z)V
40: aload 0
iconst_1
putfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
41: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 43
42: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] regular authentication succeeded"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
iconst_1
ireturn
44: StackMap locals:
StackMap stack: javax.security.auth.login.LoginException
astore 1
start local 1 45: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
46: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 48
47: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] regular authentication failed"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
48: StackMap locals: javax.security.auth.login.LoginException
StackMap stack:
aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lcom/sun/security/auth/module/JndiLoginModule;
22 27 1 le Ljavax/security/auth/login/LoginException;
35 39 1 le Ljavax/security/auth/login/LoginException;
45 49 1 le Ljavax/security/auth/login/LoginException;
Exception table:
from to target type
16 20 21 Class javax.security.auth.login.LoginException
29 33 34 Class javax.security.auth.login.LoginException
39 43 44 Class javax.security.auth.login.LoginException
Exceptions:
throws javax.security.auth.login.LoginException
public boolean commit();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifeq 5
3: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
4: new javax.security.auth.login.LoginException
dup
ldc "Subject is Readonly"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 7
6: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 9
8: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 11
10: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 12: goto 19
13: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
14: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
iload 1
invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
15: invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
16: ifne 18
17: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
iload 1
invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
checkcast java.security.Principal
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
18: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
19: iload 1
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.size:()I
if_icmplt 13
end local 1 20: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 25
21: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule]: added UnixPrincipal,"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
22: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t\t\tUnixNumericUserPrincipal,"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t\t\tUnixNumericGroupPrincipal(s),"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t\t to Subject"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
26: aload 0
iconst_1
putfield com.sun.security.auth.module.JndiLoginModule.commitSucceeded:Z
27: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/sun/security/auth/module/JndiLoginModule;
12 20 1 i I
Exceptions:
throws javax.security.auth.login.LoginException
public boolean abort();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 2
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule]: aborted authentication failed"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
ifeq 12
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.commitSucceeded:Z
ifne 12
5: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
6: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
7: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
8: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
9: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
10: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.logout:()Z
pop
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/security/auth/module/JndiLoginModule;
Exceptions:
throws javax.security.auth.login.LoginException
public boolean logout();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.isReadOnly:()Z
ifeq 3
1: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
2: new javax.security.auth.login.LoginException
dup
ldc "Subject is Readonly"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
6: iconst_0
istore 1
start local 1 7: goto 10
8: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.subject:Ljavax/security/auth/Subject;
invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
iload 1
invokevirtual java.util.LinkedList.get:(I)Ljava/lang/Object;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
9: iinc 1 1
StackMap locals:
StackMap stack:
10: iload 1
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.size:()I
if_icmplt 8
end local 1 11: aload 0
invokevirtual com.sun.security.auth.module.JndiLoginModule.cleanState:()V
12: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.succeeded:Z
13: aload 0
iconst_0
putfield com.sun.security.auth.module.JndiLoginModule.commitSucceeded:Z
14: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
15: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
16: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
17: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
18: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 20
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule]: logged out Subject"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/sun/security/auth/module/JndiLoginModule;
7 11 1 i I
Exceptions:
throws javax.security.auth.login.LoginException
private void attemptAuthentication(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=16, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
iload 1
invokevirtual com.sun.security.auth.module.JndiLoginModule.getUsernamePassword:(Z)V
2: new javax.naming.InitialContext
dup
invokespecial javax.naming.InitialContext.<init>:()V
astore 3
start local 3 3: aload 0
aload 3
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userProvider:Ljava/lang/String;
invokevirtual javax.naming.InitialContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
checkcast javax.naming.directory.DirContext
putfield com.sun.security.auth.module.JndiLoginModule.ctx:Ljavax/naming/directory/DirContext;
4: new javax.naming.directory.SearchControls
dup
invokespecial javax.naming.directory.SearchControls.<init>:()V
astore 4
start local 4 5: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.ctx:Ljavax/naming/directory/DirContext;
ldc ""
6: new java.lang.StringBuilder
dup
ldc "(uid="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: aload 4
8: invokeinterface javax.naming.directory.DirContext.search:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;
astore 5
start local 5 9: aload 5
invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
ifeq 68
10: aload 5
invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
checkcast javax.naming.directory.SearchResult
astore 6
start local 6 11: aload 6
invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
astore 7
start local 7 12: aload 7
ldc "userPassword"
invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
astore 8
start local 8 13: new java.lang.String
dup
aload 8
invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
checkcast byte[]
ldc "UTF8"
invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
astore 9
start local 9 14: aload 9
ldc "{crypt}"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
15: aload 0
16: aload 2
new java.lang.String
dup
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
invokespecial java.lang.String.<init>:([C)V
17: invokevirtual com.sun.security.auth.module.JndiLoginModule.verifyPassword:(Ljava/lang/String;Ljava/lang/String;)Z
18: ifeq 22
19: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 25
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] attemptAuthentication() succeeded"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: goto 25
22: StackMap locals: com.sun.security.auth.module.JndiLoginModule int java.lang.String javax.naming.InitialContext javax.naming.directory.SearchControls javax.naming.NamingEnumeration javax.naming.directory.SearchResult javax.naming.directory.Attributes javax.naming.directory.Attribute java.lang.String
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 24
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] attemptAuthentication() failed"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: StackMap locals:
StackMap stack:
new javax.security.auth.login.FailedLoginException
dup
ldc "Login incorrect"
invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.storePass:Z
ifeq 30
26: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 30
27: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 30
28: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
29: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
30: StackMap locals:
StackMap stack:
aload 0
new com.sun.security.auth.UnixPrincipal
dup
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokespecial com.sun.security.auth.UnixPrincipal.<init>:(Ljava/lang/String;)V
putfield com.sun.security.auth.module.JndiLoginModule.userPrincipal:Lcom/sun/security/auth/UnixPrincipal;
31: aload 7
ldc "uidNumber"
invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
astore 10
start local 10 32: aload 10
invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 33: aload 0
new com.sun.security.auth.UnixNumericUserPrincipal
dup
aload 11
invokespecial com.sun.security.auth.UnixNumericUserPrincipal.<init>:(Ljava/lang/String;)V
putfield com.sun.security.auth.module.JndiLoginModule.UIDPrincipal:Lcom/sun/security/auth/UnixNumericUserPrincipal;
34: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 39
aload 11
ifnull 39
35: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] user: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
36: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' has UID: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
37: aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
38: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
39: StackMap locals: javax.naming.directory.Attribute java.lang.String
StackMap stack:
aload 7
ldc "gidNumber"
invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
astore 12
start local 12 40: aload 12
invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 13
start local 13 41: aload 0
new com.sun.security.auth.UnixNumericGroupPrincipal
dup
42: aload 13
iconst_1
invokespecial com.sun.security.auth.UnixNumericGroupPrincipal.<init>:(Ljava/lang/String;Z)V
43: putfield com.sun.security.auth.module.JndiLoginModule.GIDPrincipal:Lcom/sun/security/auth/UnixNumericGroupPrincipal;
44: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 49
aload 13
ifnull 49
45: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] user: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
46: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' has GID: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
47: aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
48: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
49: StackMap locals: javax.naming.directory.Attribute java.lang.String
StackMap stack:
aload 0
aload 3
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.groupProvider:Ljava/lang/String;
invokevirtual javax.naming.InitialContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
checkcast javax.naming.directory.DirContext
putfield com.sun.security.auth.module.JndiLoginModule.ctx:Ljavax/naming/directory/DirContext;
50: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.ctx:Ljavax/naming/directory/DirContext;
ldc ""
new javax.naming.directory.BasicAttributes
dup
ldc "memberUid"
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokespecial javax.naming.directory.BasicAttributes.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
invokeinterface javax.naming.directory.DirContext.search:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)Ljavax/naming/NamingEnumeration;
astore 5
51: goto 66
52: StackMap locals:
StackMap stack:
aload 5
invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
checkcast javax.naming.directory.SearchResult
astore 6
53: aload 6
invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
astore 7
54: aload 7
ldc "gidNumber"
invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
astore 12
55: aload 12
invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
checkcast java.lang.String
astore 14
start local 14 56: aload 13
aload 14
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 66
57: new com.sun.security.auth.UnixNumericGroupPrincipal
dup
aload 14
iconst_0
invokespecial com.sun.security.auth.UnixNumericGroupPrincipal.<init>:(Ljava/lang/String;Z)V
58: astore 15
start local 15 59: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.supplementaryGroups:Ljava/util/LinkedList;
aload 15
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
60: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 66
aload 14
ifnull 66
61: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] user: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
62: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
63: ldc "' has Supplementary Group: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
64: aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 15 end local 14 66: StackMap locals:
StackMap stack:
aload 5
invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
ifne 52
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 67: goto 81
68: StackMap locals: com.sun.security.auth.module.JndiLoginModule int java.lang.String javax.naming.InitialContext javax.naming.directory.SearchControls javax.naming.NamingEnumeration
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 70
69: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule]: User not found"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
70: StackMap locals:
StackMap stack:
new javax.security.auth.login.FailedLoginException
dup
ldc "User not found"
invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 end local 3 71: StackMap locals: com.sun.security.auth.module.JndiLoginModule int java.lang.String
StackMap stack: javax.naming.NamingException
astore 3
start local 3 72: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 75
73: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule]: User not found"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
74: aload 3
invokevirtual javax.naming.NamingException.printStackTrace:()V
75: StackMap locals: javax.naming.NamingException
StackMap stack:
new javax.security.auth.login.FailedLoginException
dup
ldc "User not found"
invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
athrow
end local 3 76: StackMap locals: com.sun.security.auth.module.JndiLoginModule int java.lang.String
StackMap stack: java.io.UnsupportedEncodingException
astore 3
start local 3 77: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.debug:Z
ifeq 80
78: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule]: password incorrectly encoded"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
79: aload 3
invokevirtual java.io.UnsupportedEncodingException.printStackTrace:()V
80: StackMap locals: java.io.UnsupportedEncodingException
StackMap stack:
new javax.security.auth.login.LoginException
dup
ldc "Login failure due to incorrect password encoding in the password database"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 3 81: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lcom/sun/security/auth/module/JndiLoginModule;
0 82 1 getPasswdFromSharedState Z
1 82 2 encryptedPassword Ljava/lang/String;
3 71 3 iCtx Ljavax/naming/InitialContext;
5 71 4 controls Ljavax/naming/directory/SearchControls;
9 71 5 ne Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
11 67 6 result Ljavax/naming/directory/SearchResult;
12 67 7 attributes Ljavax/naming/directory/Attributes;
13 67 8 pwd Ljavax/naming/directory/Attribute;
14 67 9 encryptedPwd Ljava/lang/String;
32 67 10 uid Ljavax/naming/directory/Attribute;
33 67 11 uidNumber Ljava/lang/String;
40 67 12 gid Ljavax/naming/directory/Attribute;
41 67 13 gidNumber Ljava/lang/String;
56 66 14 suppGid Ljava/lang/String;
59 66 15 suppPrincipal Lcom/sun/security/auth/UnixNumericGroupPrincipal;
72 76 3 ne Ljavax/naming/NamingException;
77 81 3 uee Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
2 71 71 Class javax.naming.NamingException
2 71 76 Class java.io.UnsupportedEncodingException
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
getPasswdFromSharedState
private void getUsernamePassword(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: iload 1
ifeq 4
1: aload 0
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
2: aload 0
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast char[]
putfield com.sun.security.auth.module.JndiLoginModule.password:[C
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
ifnonnull 6
5: new javax.security.auth.login.LoginException
dup
ldc "Error: no CallbackHandler available to garner authentication information from the user"
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userProvider:Ljava/lang/String;
iconst_0
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.userProvider:Ljava/lang/String;
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
start local 2 7: iconst_2
anewarray javax.security.auth.callback.Callback
astore 3
start local 3 8: aload 3
iconst_0
new javax.security.auth.callback.NameCallback
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "username."
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
10: aastore
11: aload 3
iconst_1
new javax.security.auth.callback.PasswordCallback
dup
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc "password."
invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: iconst_0
invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
14: aastore
15: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
aload 3
invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
16: aload 0
aload 3
iconst_0
aaload
checkcast javax.security.auth.callback.NameCallback
invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
putfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
17: aload 3
iconst_1
aaload
checkcast javax.security.auth.callback.PasswordCallback
invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
astore 4
start local 4 18: aload 0
aload 4
arraylength
newarray 5
putfield com.sun.security.auth.module.JndiLoginModule.password:[C
19: aload 4
iconst_0
20: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
iconst_0
aload 4
arraylength
21: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: aload 3
iconst_1
aaload
checkcast javax.security.auth.callback.PasswordCallback
invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
end local 4 23: goto 31
StackMap locals: com.sun.security.auth.module.JndiLoginModule int java.lang.String javax.security.auth.callback.Callback[]
StackMap stack: java.io.IOException
24: astore 4
start local 4 25: new javax.security.auth.login.LoginException
dup
aload 4
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 4 26: StackMap locals:
StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
astore 4
start local 4 27: new javax.security.auth.login.LoginException
dup
new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: ldc " not available to garner authentication information "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
29: ldc "from the user"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
30: invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
athrow
end local 4 31: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.strongDebug:Z
ifeq 42
32: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "\t\t[JndiLoginModule] user entered username: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
33: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
34: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
35: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\t\t[JndiLoginModule] user entered password: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
36: iconst_0
istore 4
start local 4 37: goto 40
38: StackMap locals: int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
iload 4
caload
invokevirtual java.io.PrintStream.print:(C)V
39: iinc 4 1
StackMap locals:
StackMap stack:
40: iload 4
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
arraylength
if_icmplt 38
end local 4 41: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
42: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/sun/security/auth/module/JndiLoginModule;
0 43 1 getPasswdFromSharedState Z
7 43 2 protocol Ljava/lang/String;
8 43 3 callbacks [Ljavax/security/auth/callback/Callback;
18 23 4 tmpPassword [C
25 26 4 ioe Ljava/io/IOException;
27 31 4 uce Ljavax/security/auth/callback/UnsupportedCallbackException;
37 41 4 i I
Exception table:
from to target type
15 23 24 Class java.io.IOException
15 23 26 Class javax.security.auth.callback.UnsupportedCallbackException
Exceptions:
throws javax.security.auth.login.LoginException
MethodParameters:
Name Flags
getPasswdFromSharedState
private boolean verifyPassword(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
new com.sun.security.auth.module.Crypt
dup
invokespecial com.sun.security.auth.module.Crypt.<init>:()V
astore 3
start local 3 3: aload 1
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 4
start local 4 4: aload 3
aload 2
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
5: aload 4
6: invokevirtual com.sun.security.auth.module.Crypt.crypt:([B[B)[B
astore 5
start local 5 7: aload 5
arraylength
aload 4
arraylength
if_icmpeq 9
8: iconst_0
ireturn
9: StackMap locals: com.sun.security.auth.module.Crypt byte[] byte[]
StackMap stack:
iconst_0
istore 6
start local 6 10: goto 14
11: StackMap locals: int
StackMap stack:
aload 4
iload 6
baload
aload 5
iload 6
baload
if_icmpeq 13
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
aload 5
arraylength
if_icmplt 11
end local 6 end local 5 end local 4 15: goto 18
StackMap locals: com.sun.security.auth.module.JndiLoginModule java.lang.String java.lang.String com.sun.security.auth.module.Crypt
StackMap stack: java.io.UnsupportedEncodingException
16: pop
17: iconst_0
ireturn
18: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/security/auth/module/JndiLoginModule;
0 19 1 encryptedPassword Ljava/lang/String;
0 19 2 password Ljava/lang/String;
3 19 3 c Lcom/sun/security/auth/module/Crypt;
4 15 4 oldCrypt [B
7 15 5 newCrypt [B
10 15 6 i I
Exception table:
from to target type
3 8 16 Class java.io.UnsupportedEncodingException
9 12 16 Class java.io.UnsupportedEncodingException
13 15 16 Class java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
encryptedPassword
password
private void cleanState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.username:Ljava/lang/String;
1: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
ifnull 8
2: iconst_0
istore 1
start local 1 3: goto 6
4: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
iload 1
bipush 32
castore
5: iinc 1 1
StackMap locals:
StackMap stack:
6: iload 1
aload 0
getfield com.sun.security.auth.module.JndiLoginModule.password:[C
arraylength
if_icmplt 4
end local 1 7: aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.password:[C
8: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.sun.security.auth.module.JndiLoginModule.ctx:Ljavax/naming/directory/DirContext;
9: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.clearPass:Z
ifeq 12
10: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.name"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
getfield com.sun.security.auth.module.JndiLoginModule.sharedState:Ljava/util/Map;
ldc "javax.security.auth.login.password"
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/security/auth/module/JndiLoginModule;
3 7 1 i I
}
SourceFile: "JndiLoginModule.java"