public class org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl implements javax.security.auth.callback.CallbackHandler, org.apache.catalina.Contained
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl
super_class: java.lang.Object
{
private static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.apache.catalina.Container container;
descriptor: Lorg/apache/catalina/Container;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
putstatic org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.log:Lorg/apache/juli/logging/Log;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
public void handle(javax.security.auth.callback.Callback[]);
descriptor: ([Ljavax/security/auth/callback/Callback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aload 1
ifnull 40
5: aload 1
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 36
StackMap locals: org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl javax.security.auth.callback.Callback[] java.lang.String java.security.Principal javax.security.auth.Subject java.lang.String[] top int int javax.security.auth.callback.Callback[]
StackMap stack:
6: aload 9
iload 7
aaload
astore 6
start local 6 7: aload 6
instanceof jakarta.security.auth.message.callback.CallerPrincipalCallback
ifeq 13
8: aload 6
checkcast jakarta.security.auth.message.callback.CallerPrincipalCallback
astore 10
start local 10 9: aload 10
invokevirtual jakarta.security.auth.message.callback.CallerPrincipalCallback.getName:()Ljava/lang/String;
astore 2
10: aload 10
invokevirtual jakarta.security.auth.message.callback.CallerPrincipalCallback.getPrincipal:()Ljava/security/Principal;
astore 3
11: aload 10
invokevirtual jakarta.security.auth.message.callback.CallerPrincipalCallback.getSubject:()Ljavax/security/auth/Subject;
astore 4
end local 10 12: goto 35
StackMap locals: org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl javax.security.auth.callback.Callback[] java.lang.String java.security.Principal javax.security.auth.Subject java.lang.String[] javax.security.auth.callback.Callback int int javax.security.auth.callback.Callback[]
StackMap stack:
13: aload 6
instanceof jakarta.security.auth.message.callback.GroupPrincipalCallback
ifeq 17
14: aload 6
checkcast jakarta.security.auth.message.callback.GroupPrincipalCallback
astore 10
start local 10 15: aload 10
invokevirtual jakarta.security.auth.message.callback.GroupPrincipalCallback.getGroups:()[Ljava/lang/String;
astore 5
end local 10 16: goto 35
StackMap locals:
StackMap stack:
17: aload 6
instanceof jakarta.security.auth.message.callback.PasswordValidationCallback
ifeq 32
18: aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.container:Lorg/apache/catalina/Container;
ifnonnull 21
19: aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "callbackHandlerImpl.containerMissing"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
20: goto 35
StackMap locals:
StackMap stack:
21: aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.container:Lorg/apache/catalina/Container;
invokeinterface org.apache.catalina.Container.getRealm:()Lorg/apache/catalina/Realm;
ifnonnull 26
22: aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "callbackHandlerImpl.realmMissing"
iconst_2
anewarray java.lang.Object
dup
iconst_0
23: aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.container:Lorg/apache/catalina/Container;
invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
aastore
24: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
25: goto 35
26: StackMap locals:
StackMap stack:
aload 6
checkcast jakarta.security.auth.message.callback.PasswordValidationCallback
astore 10
start local 10 27: aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.container:Lorg/apache/catalina/Container;
invokeinterface org.apache.catalina.Container.getRealm:()Lorg/apache/catalina/Realm;
aload 10
invokevirtual jakarta.security.auth.message.callback.PasswordValidationCallback.getUsername:()Ljava/lang/String;
28: aload 10
invokevirtual jakarta.security.auth.message.callback.PasswordValidationCallback.getPassword:()[C
invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
29: invokeinterface org.apache.catalina.Realm.authenticate:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Principal;
astore 3
30: aload 10
invokevirtual jakarta.security.auth.message.callback.PasswordValidationCallback.getSubject:()Ljavax/security/auth/Subject;
astore 4
end local 10 31: goto 35
32: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "callbackHandlerImpl.jaspicCallbackMissing"
iconst_1
anewarray java.lang.Object
dup
iconst_0
33: aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
34: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
end local 6 35: StackMap locals: org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl javax.security.auth.callback.Callback[] java.lang.String java.security.Principal javax.security.auth.Subject java.lang.String[] top int int javax.security.auth.callback.Callback[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
36: iload 7
iload 8
if_icmplt 6
37: aload 0
aload 3
aload 2
aload 5
invokevirtual org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.getPrincipal:(Ljava/security/Principal;Ljava/lang/String;[Ljava/lang/String;)Ljava/security/Principal;
astore 6
start local 6 38: aload 4
ifnull 40
aload 6
ifnull 40
39: aload 4
invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 6 40: StackMap locals: org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl javax.security.auth.callback.Callback[] java.lang.String java.security.Principal javax.security.auth.Subject java.lang.String[]
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
0 41 1 callbacks [Ljavax/security/auth/callback/Callback;
1 41 2 name Ljava/lang/String;
2 41 3 principal Ljava/security/Principal;
3 41 4 subject Ljavax/security/auth/Subject;
4 41 5 groups [Ljava/lang/String;
7 35 6 callback Ljavax/security/auth/callback/Callback;
9 12 10 cpc Ljakarta/security/auth/message/callback/CallerPrincipalCallback;
15 16 10 gpc Ljakarta/security/auth/message/callback/GroupPrincipalCallback;
27 31 10 pvc Ljakarta/security/auth/message/callback/PasswordValidationCallback;
38 40 6 gp Ljava/security/Principal;
Exceptions:
throws java.io.IOException, javax.security.auth.callback.UnsupportedCallbackException
MethodParameters:
Name Flags
callbacks
private java.security.Principal getPrincipal(java.security.Principal, java.lang.String, java.lang.String[]);
descriptor: (Ljava/security/Principal;Ljava/lang/String;[Ljava/lang/String;)Ljava/security/Principal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof org.apache.catalina.realm.GenericPrincipal
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
aload 1
ifnull 4
3: aload 1
invokeinterface java.security.Principal.getName:()Ljava/lang/String;
astore 2
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 3
ifnull 7
aload 3
arraylength
ifne 9
7: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 4
start local 4 8: goto 10
end local 4 9: StackMap locals:
StackMap stack:
aload 3
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 4
start local 4 10: StackMap locals: java.util.List
StackMap stack:
new org.apache.catalina.realm.GenericPrincipal
dup
aload 2
aload 4
aload 1
invokespecial org.apache.catalina.realm.GenericPrincipal.<init>:(Ljava/lang/String;Ljava/util/List;Ljava/security/Principal;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
0 11 1 principal Ljava/security/Principal;
0 11 2 name Ljava/lang/String;
0 11 3 groups [Ljava/lang/String;
8 9 4 roles Ljava/util/List<Ljava/lang/String;>;
10 11 4 roles Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
principal
name
groups
public org.apache.catalina.Container getContainer();
descriptor: ()Lorg/apache/catalina/Container;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.container:Lorg/apache/catalina/Container;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
public void setContainer(org.apache.catalina.Container);
descriptor: (Lorg/apache/catalina/Container;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.authenticator.jaspic.CallbackHandlerImpl.container:Lorg/apache/catalina/Container;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/authenticator/jaspic/CallbackHandlerImpl;
0 2 1 container Lorg/apache/catalina/Container;
MethodParameters:
Name Flags
container
}
SourceFile: "CallbackHandlerImpl.java"