public class io.vertx.ext.auth.shiro.impl.ShiroUser extends io.vertx.ext.auth.AbstractUser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.auth.shiro.impl.ShiroUser
  super_class: io.vertx.ext.auth.AbstractUser
{
  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 username;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.shiro.subject.Subject subject;
    descriptor: Lorg/apache/shiro/subject/Subject;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.json.JsonObject principal;
    descriptor: Lio/vertx/core/json/JsonObject;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String rolePrefix;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(io.vertx.core.Vertx, org.apache.shiro.mgt.SecurityManager, org.apache.shiro.subject.Subject, java.lang.String);
    descriptor: (Lio/vertx/core/Vertx;Lorg/apache/shiro/mgt/SecurityManager;Lorg/apache/shiro/subject/Subject;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 1 // io.vertx.core.Vertx vertx
        start local 2 // org.apache.shiro.mgt.SecurityManager securityManager
        start local 3 // org.apache.shiro.subject.Subject subject
        start local 4 // java.lang.String rolePrefix
         0: .line 48
            aload 0 /* this */
            invokespecial io.vertx.ext.auth.AbstractUser.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.vertx:Lio/vertx/core/Vertx;
         2: .line 50
            aload 0 /* this */
            aload 2 /* securityManager */
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
         3: .line 51
            aload 0 /* this */
            aload 4 /* rolePrefix */
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.rolePrefix:Ljava/lang/String;
         4: .line 52
            aload 0 /* this */
            aload 3 /* subject */
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.subject:Lorg/apache/shiro/subject/Subject;
         5: .line 53
            aload 0 /* this */
            aload 3 /* subject */
            invokeinterface org.apache.shiro.subject.Subject.getPrincipal:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.username:Ljava/lang/String;
         6: .line 54
            return
        end local 4 // java.lang.String rolePrefix
        end local 3 // org.apache.shiro.subject.Subject subject
        end local 2 // org.apache.shiro.mgt.SecurityManager securityManager
        end local 1 // io.vertx.core.Vertx vertx
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0    7     1            vertx  Lio/vertx/core/Vertx;
            0    7     2  securityManager  Lorg/apache/shiro/mgt/SecurityManager;
            0    7     3          subject  Lorg/apache/shiro/subject/Subject;
            0    7     4       rolePrefix  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      vertx            
      securityManager  
      subject          
      rolePrefix       

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
         0: .line 56
            aload 0 /* this */
            invokespecial io.vertx.ext.auth.AbstractUser.<init>:()V
         1: .line 57
            return
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;

  protected void doIsPermitted(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Boolean>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 1 // java.lang.String permissionOrRole
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 61
            aload 1 /* permissionOrRole */
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.rolePrefix:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         1: .line 62
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            aload 1 /* permissionOrRole */
            invokedynamic handle(Lio/vertx/ext/auth/shiro/impl/ShiroUser;Ljava/lang/String;)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/ShiroUser.lambda$0(Ljava/lang/String;Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
         2: .line 68
            aload 2 /* resultHandler */
         3: .line 62
            invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
         4: .line 69
            goto 8
         5: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.vertx:Lio/vertx/core/Vertx;
            aload 0 /* this */
            aload 1 /* permissionOrRole */
            invokedynamic handle(Lio/vertx/ext/auth/shiro/impl/ShiroUser;Ljava/lang/String;)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/ShiroUser.lambda$1(Ljava/lang/String;Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
         6: .line 75
            aload 2 /* resultHandler */
         7: .line 70
            invokeinterface io.vertx.core.Vertx.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
         8: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String permissionOrRole
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0    9     1  permissionOrRole  Ljava/lang/String;
            0    9     2     resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;)V
    MethodParameters:
                  Name  Flags
      permissionOrRole  
      resultHandler     

  public io.vertx.core.json.JsonObject principal();
    descriptor: ()Lio/vertx/core/json/JsonObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
         0: .line 81
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.principal:Lio/vertx/core/json/JsonObject;
            ifnonnull 2
         1: .line 82
            aload 0 /* this */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "username"
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.username:Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.principal:Lio/vertx/core/json/JsonObject;
         2: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.principal:Lio/vertx/core/json/JsonObject;
            areturn
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;

  public void writeToBuffer(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 1 // io.vertx.core.buffer.Buffer buff
         0: .line 89
            aload 0 /* this */
            aload 1 /* buff */
            invokespecial io.vertx.ext.auth.AbstractUser.writeToBuffer:(Lio/vertx/core/buffer/Buffer;)V
         1: .line 90
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.username:Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         2: .line 91
            aload 1 /* buff */
            aload 2 /* bytes */
            arraylength
            invokeinterface io.vertx.core.buffer.Buffer.appendInt:(I)Lio/vertx/core/buffer/Buffer;
            aload 2 /* bytes */
            invokeinterface io.vertx.core.buffer.Buffer.appendBytes:([B)Lio/vertx/core/buffer/Buffer;
            pop
         3: .line 93
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.rolePrefix:Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 2 /* bytes */
         4: .line 94
            aload 1 /* buff */
            aload 2 /* bytes */
            arraylength
            invokeinterface io.vertx.core.buffer.Buffer.appendInt:(I)Lio/vertx/core/buffer/Buffer;
            pop
         5: .line 95
            aload 1 /* buff */
            aload 2 /* bytes */
            invokeinterface io.vertx.core.buffer.Buffer.appendBytes:([B)Lio/vertx/core/buffer/Buffer;
            pop
         6: .line 96
            return
        end local 2 // byte[] bytes
        end local 1 // io.vertx.core.buffer.Buffer buff
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0    7     1   buff  Lio/vertx/core/buffer/Buffer;
            2    7     2  bytes  [B
    MethodParameters:
      Name  Flags
      buff  

  public int readFromBuffer(int, io.vertx.core.buffer.Buffer);
    descriptor: (ILio/vertx/core/buffer/Buffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 1 // int pos
        start local 2 // io.vertx.core.buffer.Buffer buffer
         0: .line 100
            aload 0 /* this */
            iload 1 /* pos */
            aload 2 /* buffer */
            invokespecial io.vertx.ext.auth.AbstractUser.readFromBuffer:(ILio/vertx/core/buffer/Buffer;)I
            istore 1 /* pos */
         1: .line 101
            aload 2 /* buffer */
            iload 1 /* pos */
            invokeinterface io.vertx.core.buffer.Buffer.getInt:(I)I
            istore 3 /* len */
        start local 3 // int len
         2: .line 102
            iinc 1 /* pos */ 4
         3: .line 103
            aload 2 /* buffer */
            iload 1 /* pos */
            iload 1 /* pos */
            iload 3 /* len */
            iadd
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:(II)[B
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         4: .line 104
            aload 0 /* this */
            new java.lang.String
            dup
            aload 4 /* bytes */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.username:Ljava/lang/String;
         5: .line 105
            iload 1 /* pos */
            iload 3 /* len */
            iadd
            istore 1 /* pos */
         6: .line 107
            aload 2 /* buffer */
            iload 1 /* pos */
            invokeinterface io.vertx.core.buffer.Buffer.getInt:(I)I
            istore 3 /* len */
         7: .line 108
            iinc 1 /* pos */ 4
         8: .line 109
            aload 2 /* buffer */
            iload 1 /* pos */
            iload 1 /* pos */
            iload 3 /* len */
            iadd
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:(II)[B
            astore 4 /* bytes */
         9: .line 110
            aload 0 /* this */
            new java.lang.String
            dup
            aload 4 /* bytes */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.rolePrefix:Ljava/lang/String;
        10: .line 111
            iload 1 /* pos */
            iload 3 /* len */
            iadd
            istore 1 /* pos */
        11: .line 113
            iload 1 /* pos */
            ireturn
        end local 4 // byte[] bytes
        end local 3 // int len
        end local 2 // io.vertx.core.buffer.Buffer buffer
        end local 1 // int pos
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0   12     1     pos  I
            0   12     2  buffer  Lio/vertx/core/buffer/Buffer;
            2   12     3     len  I
            4   12     4   bytes  [B
    MethodParameters:
        Name  Flags
      pos     
      buffer  

  public void setAuthProvider(io.vertx.ext.auth.AuthProvider);
    descriptor: (Lio/vertx/ext/auth/AuthProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 1 // io.vertx.ext.auth.AuthProvider authProvider
         0: .line 118
            aload 1 /* authProvider */
            instanceof io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl
            ifeq 10
         1: .line 119
            aload 1 /* authProvider */
            checkcast io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl
            astore 2 /* shiroAuthProvider */
        start local 2 // io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl shiroAuthProvider
         2: .line 120
            aload 0 /* this */
            aload 2 /* shiroAuthProvider */
            invokevirtual io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.getVertx:()Lio/vertx/core/Vertx;
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.vertx:Lio/vertx/core/Vertx;
         3: .line 121
            aload 0 /* this */
            aload 2 /* shiroAuthProvider */
            invokevirtual io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.getSecurityManager:()Lorg/apache/shiro/mgt/SecurityManager;
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
         4: .line 123
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
            invokestatic org.apache.shiro.SecurityUtils.setSecurityManager:(Lorg/apache/shiro/mgt/SecurityManager;)V
         5: .line 125
            new org.apache.shiro.subject.support.DefaultSubjectContext
            dup
            invokespecial org.apache.shiro.subject.support.DefaultSubjectContext.<init>:()V
            astore 3 /* subjectContext */
        start local 3 // org.apache.shiro.subject.SubjectContext subjectContext
         6: .line 126
            new org.apache.shiro.subject.SimplePrincipalCollection
            dup
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.username:Ljava/lang/String;
            aload 2 /* shiroAuthProvider */
            invokevirtual io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl.getRealmName:()Ljava/lang/String;
            invokespecial org.apache.shiro.subject.SimplePrincipalCollection.<init>:(Ljava/lang/Object;Ljava/lang/String;)V
            astore 4 /* coll */
        start local 4 // org.apache.shiro.subject.PrincipalCollection coll
         7: .line 127
            aload 3 /* subjectContext */
            aload 4 /* coll */
            invokeinterface org.apache.shiro.subject.SubjectContext.setPrincipals:(Lorg/apache/shiro/subject/PrincipalCollection;)V
         8: .line 128
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
            aload 3 /* subjectContext */
            invokeinterface org.apache.shiro.mgt.SecurityManager.createSubject:(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/Subject;
            putfield io.vertx.ext.auth.shiro.impl.ShiroUser.subject:Lorg/apache/shiro/subject/Subject;
        end local 4 // org.apache.shiro.subject.PrincipalCollection coll
        end local 3 // org.apache.shiro.subject.SubjectContext subjectContext
        end local 2 // io.vertx.ext.auth.shiro.impl.ShiroAuthProviderImpl shiroAuthProvider
         9: .line 129
            goto 11
        10: .line 130
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a ShiroAuthProviderImpl"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 132
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.ext.auth.AuthProvider authProvider
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0   12     1       authProvider  Lio/vertx/ext/auth/AuthProvider;
            2    9     2  shiroAuthProvider  Lio/vertx/ext/auth/shiro/impl/ShiroAuthProviderImpl;
            6    9     3     subjectContext  Lorg/apache/shiro/subject/SubjectContext;
            7    9     4               coll  Lorg/apache/shiro/subject/PrincipalCollection;
    MethodParameters:
              Name  Flags
      authProvider  

  private void lambda$0(java.lang.String, io.vertx.core.Promise);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 2 // io.vertx.core.Promise fut
         0: .line 63
            aload 1
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.rolePrefix:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* role */
        start local 3 // java.lang.String role
         1: .line 65
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
            invokestatic org.apache.shiro.SecurityUtils.setSecurityManager:(Lorg/apache/shiro/mgt/SecurityManager;)V
         2: .line 67
            aload 2 /* fut */
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.subject:Lorg/apache/shiro/subject/Subject;
            aload 3 /* role */
            invokeinterface org.apache.shiro.subject.Subject.hasRole:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
        end local 3 // java.lang.String role
         3: .line 68
            return
        end local 2 // io.vertx.core.Promise fut
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0    4     2   fut  Lio/vertx/core/Promise<Ljava/lang/Boolean;>;
            1    3     3  role  Ljava/lang/String;

  private void lambda$1(java.lang.String, io.vertx.core.Promise);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
        start local 2 // io.vertx.core.Promise fut
         0: .line 72
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.securityManager:Lorg/apache/shiro/mgt/SecurityManager;
            invokestatic org.apache.shiro.SecurityUtils.setSecurityManager:(Lorg/apache/shiro/mgt/SecurityManager;)V
         1: .line 74
            aload 2 /* fut */
            aload 0 /* this */
            getfield io.vertx.ext.auth.shiro.impl.ShiroUser.subject:Lorg/apache/shiro/subject/Subject;
            aload 1
            invokeinterface org.apache.shiro.subject.Subject.isPermitted:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
         2: .line 75
            return
        end local 2 // io.vertx.core.Promise fut
        end local 0 // io.vertx.ext.auth.shiro.impl.ShiroUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/ext/auth/shiro/impl/ShiroUser;
            0    3     2   fut  Lio/vertx/core/Promise<Ljava/lang/Boolean;>;
}
SourceFile: "ShiroUser.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles