public class io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl implements io.vertx.ext.auth.shiro.ShiroAuth
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl
super_class: java.lang.Object
{
private io.vertx.core.Vertx vertx;
descriptor: Lio/vertx/core/Vertx;
flags: (0x0002) ACC_PRIVATE
private org.apache.shiro.mgt.SecurityManager securityManager;
descriptor: Lorg/apache/shiro/mgt/SecurityManager;
flags: (0x0002) ACC_PRIVATE
private java.lang.String realmName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private static volatile int[] $SWITCH_TABLE$io$vertx$ext$auth$shiro$ShiroAuthRealmType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public static io.vertx.ext.auth.shiro.ShiroAuth create(io.vertx.core.Vertx, io.vertx.ext.auth.shiro.ShiroAuthOptions);
descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/shiro/ShiroAuthOptions;)Lio/vertx/ext/auth/shiro/ShiroAuth;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: invokestatic io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.$SWITCH_TABLE$io$vertx$ext$auth$shiro$ShiroAuthRealmType:()[I
aload 1
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthOptions.getType:()Lio/vertx/ext/auth/shiro/ShiroAuthRealmType;
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthRealmType.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 1
2: 3
default: 5
}
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthOptions.getConfig:()Lio/vertx/core/json/JsonObject;
invokestatic io.vertx.ext.auth.shiro.impl.PropertiesAuthProvider.createRealm:(Lio/vertx/core/json/JsonObject;)Lorg/apache/shiro/realm/Realm;
astore 2
start local 2 2: goto 6
end local 2 3: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthOptions.getConfig:()Lio/vertx/core/json/JsonObject;
invokestatic io.vertx.ext.auth.shiro.impl.LDAPAuthProvider.createRealm:(Lio/vertx/core/json/JsonObject;)Lorg/apache/shiro/realm/Realm;
astore 2
start local 2 4: goto 6
end local 2 5: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid shiro auth realm type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthOptions.getType:()Lio/vertx/ext/auth/shiro/ShiroAuthRealmType;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 2 6: StackMap locals: org.apache.shiro.realm.Realm
StackMap stack:
new io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl
dup
aload 0
aload 2
invokespecial io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.<init>:(Lio/vertx/core/Vertx;Lorg/apache/shiro/realm/Realm;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 vertx Lio/vertx/core/Vertx;
0 7 1 options Lio/vertx/ext/auth/shiro/ShiroAuthOptions;
2 3 2 realm Lorg/apache/shiro/realm/Realm;
4 5 2 realm Lorg/apache/shiro/realm/Realm;
6 7 2 realm Lorg/apache/shiro/realm/Realm;
MethodParameters:
Name Flags
vertx
options
public void <init>(io.vertx.core.Vertx, org.apache.shiro.realm.Realm);
descriptor: (Lio/vertx/core/Vertx;Lorg/apache/shiro/realm/Realm;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.vertx:Lio/vertx/core/Vertx;
2: aload 0
new org.apache.shiro.mgt.DefaultSecurityManager
dup
aload 2
invokespecial org.apache.shiro.mgt.DefaultSecurityManager.<init>:(Lorg/apache/shiro/realm/Realm;)V
putfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
3: aload 0
aload 2
invokeinterface org.apache.shiro.realm.Realm.getName:()Ljava/lang/String;
putfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.realmName:Ljava/lang/String;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
0 5 1 vertx Lio/vertx/core/Vertx;
0 5 2 realm Lorg/apache/shiro/realm/Realm;
MethodParameters:
Name Flags
vertx
realm
public void authenticate(io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.auth.User>>);
descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new io.vertx.ext.auth.authentication.UsernamePasswordCredentials
dup
aload 1
invokespecial io.vertx.ext.auth.authentication.UsernamePasswordCredentials.<init>:(Lio/vertx/core/json/JsonObject;)V
aload 2
invokevirtual io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.authenticate:(Lio/vertx/ext/auth/authentication/Credentials;Lio/vertx/core/Handler;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
0 2 1 authInfo Lio/vertx/core/json/JsonObject;
0 2 2 resultHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;>;
Signature: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;>;)V
MethodParameters:
Name Flags
authInfo
resultHandler
public void authenticate(io.vertx.ext.auth.authentication.Credentials, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.auth.User>>);
descriptor: (Lio/vertx/ext/auth/authentication/Credentials;Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast io.vertx.ext.auth.authentication.UsernamePasswordCredentials
astore 3
start local 3 1: aload 3
aconst_null
invokevirtual io.vertx.ext.auth.authentication.UsernamePasswordCredentials.checkValid:(Ljava/lang/Object;)V
2: aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.vertx:Lio/vertx/core/Vertx;
aload 0
aload 3
invokedynamic handle(Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;Lio/vertx/ext/auth/authentication/UsernamePasswordCredentials;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl.lambda$0(Lio/vertx/ext/auth/authentication/UsernamePasswordCredentials;Lio/vertx/core/Promise;)V (7)
(Lio/vertx/core/Promise;)V
3: aload 2
4: invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
end local 3 5: goto 8
StackMap locals:
StackMap stack: java.lang.RuntimeException
6: astore 3
start local 3 7: aload 2
aload 3
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
0 9 1 credentials Lio/vertx/ext/auth/authentication/Credentials;
0 9 2 resultHandler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;>;
1 5 3 authInfo Lio/vertx/ext/auth/authentication/UsernamePasswordCredentials;
7 8 3 e Ljava/lang/RuntimeException;
Exception table:
from to target type
0 5 6 Class java.lang.ClassCastException
0 5 6 Class io.vertx.ext.auth.authentication.CredentialValidationException
Signature: (Lio/vertx/ext/auth/authentication/Credentials;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/User;>;>;)V
MethodParameters:
Name Flags
credentials
resultHandler
io.vertx.core.Vertx getVertx();
descriptor: ()Lio/vertx/core/Vertx;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.vertx:Lio/vertx/core/Vertx;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
org.apache.shiro.mgt.SecurityManager getSecurityManager();
descriptor: ()Lorg/apache/shiro/mgt/SecurityManager;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
java.lang.String getRealmName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.realmName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
private io.vertx.ext.auth.User createUser(org.apache.shiro.mgt.SecurityManager, org.apache.shiro.subject.Subject);
descriptor: (Lorg/apache/shiro/mgt/SecurityManager;Lorg/apache/shiro/subject/Subject;)Lio/vertx/ext/auth/User;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: new io.vertx.core.json.JsonObject
dup
invokespecial io.vertx.core.json.JsonObject.<init>:()V
ldc "username"
aload 2
invokeinterface org.apache.shiro.subject.Subject.getPrincipal:()Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
astore 3
start local 3 3: new io.vertx.ext.auth.impl.UserImpl
dup
aload 3
invokespecial io.vertx.ext.auth.impl.UserImpl.<init>:(Lio/vertx/core/json/JsonObject;)V
astore 4
start local 4 4: aload 4
invokeinterface io.vertx.ext.auth.User.authorizations:()Lio/vertx/ext/auth/authorization/Authorizations;
ldc "shiro-authentication"
aload 1
aload 2
invokestatic org.apache.shiro.realm.GetAuthorizationsHack.getAuthorizations:(Lorg/apache/shiro/mgt/SecurityManager;Lorg/apache/shiro/subject/Subject;)Ljava/util/Set;
invokeinterface io.vertx.ext.auth.authorization.Authorizations.add:(Ljava/lang/String;Ljava/util/Set;)Lio/vertx/ext/auth/authorization/Authorizations;
pop
5: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
0 6 1 securityManager Lorg/apache/shiro/mgt/SecurityManager;
0 6 2 subject Lorg/apache/shiro/subject/Subject;
3 6 3 principal Lio/vertx/core/json/JsonObject;
4 6 4 result Lio/vertx/ext/auth/User;
MethodParameters:
Name Flags
securityManager
subject
static int[] $SWITCH_TABLE$io$vertx$ext$auth$shiro$ShiroAuthRealmType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.$SWITCH_TABLE$io$vertx$ext$auth$shiro$ShiroAuthRealmType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.vertx.ext.auth.shiro.ShiroAuthRealmType.values:()[Lio/vertx/ext/auth/shiro/ShiroAuthRealmType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.vertx.ext.auth.shiro.ShiroAuthRealmType.LDAP:Lio/vertx/ext/auth/shiro/ShiroAuthRealmType;
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthRealmType.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic io.vertx.ext.auth.shiro.ShiroAuthRealmType.PROPERTIES:Lio/vertx/ext/auth/shiro/ShiroAuthRealmType;
invokevirtual io.vertx.ext.auth.shiro.ShiroAuthRealmType.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
dup
putstatic io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.$SWITCH_TABLE$io$vertx$ext$auth$shiro$ShiroAuthRealmType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
private void lambda$0(io.vertx.ext.auth.authentication.UsernamePasswordCredentials, io.vertx.core.Promise);
descriptor: (Lio/vertx/ext/auth/authentication/UsernamePasswordCredentials;Lio/vertx/core/Promise;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 2 0: aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
invokestatic org.apache.shiro.SecurityUtils.setSecurityManager:(Lorg/apache/shiro/mgt/SecurityManager;)V
1: new org.apache.shiro.subject.support.DefaultSubjectContext
dup
invokespecial org.apache.shiro.subject.support.DefaultSubjectContext.<init>:()V
astore 3
start local 3 2: aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
aload 3
invokeinterface org.apache.shiro.mgt.SecurityManager.createSubject:(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/Subject;
astore 4
start local 4 3: aload 1
invokevirtual io.vertx.ext.auth.authentication.UsernamePasswordCredentials.getUsername:()Ljava/lang/String;
astore 5
start local 5 4: aload 1
invokevirtual io.vertx.ext.auth.authentication.UsernamePasswordCredentials.getPassword:()Ljava/lang/String;
astore 6
start local 6 5: new org.apache.shiro.authc.UsernamePasswordToken
dup
aload 5
aload 6
invokespecial org.apache.shiro.authc.UsernamePasswordToken.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 7
start local 7 6: aload 4
aload 7
invokeinterface org.apache.shiro.subject.Subject.login:(Lorg/apache/shiro/authc/AuthenticationToken;)V
7: aload 2
aload 0
aload 0
getfield io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
aload 4
invokevirtual io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.createUser:(Lorg/apache/shiro/mgt/SecurityManager;Lorg/apache/shiro/subject/Subject;)Lio/vertx/ext/auth/User;
invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
8: goto 11
StackMap locals: io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl io.vertx.ext.auth.authentication.UsernamePasswordCredentials io.vertx.core.Promise org.apache.shiro.subject.SubjectContext org.apache.shiro.subject.Subject java.lang.String java.lang.String org.apache.shiro.authc.AuthenticationToken
StackMap stack: org.apache.shiro.authc.AuthenticationException
9: astore 8
start local 8 10: aload 2
aload 8
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 11: StackMap locals: io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl io.vertx.ext.auth.authentication.UsernamePasswordCredentials io.vertx.core.Promise
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
0 12 2 fut Lio/vertx/core/Promise<Lio/vertx/ext/auth/User;>;
2 11 3 subjectContext Lorg/apache/shiro/subject/SubjectContext;
3 11 4 subject Lorg/apache/shiro/subject/Subject;
4 11 5 username Ljava/lang/String;
5 11 6 password Ljava/lang/String;
6 11 7 token Lorg/apache/shiro/authc/AuthenticationToken;
10 11 8 e Lorg/apache/shiro/authc/AuthenticationException;
Exception table:
from to target type
6 8 9 Class org.apache.shiro.authc.AuthenticationException
}
SourceFile: "ShiroAuthProviderImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles