public class io.vertx.ext.auth.mongo.impl.MongoUser 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.mongo.impl.MongoUser
  super_class: io.vertx.ext.auth.AbstractUser
{
  private io.vertx.core.json.JsonObject principal;
    descriptor: Lio/vertx/core/json/JsonObject;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.ext.auth.mongo.MongoAuth mongoAuth;
    descriptor: Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>(java.lang.String, io.vertx.ext.auth.mongo.MongoAuth);
    descriptor: (Ljava/lang/String;Lio/vertx/ext/auth/mongo/MongoAuth;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
        start local 1 // java.lang.String username
        start local 2 // io.vertx.ext.auth.mongo.MongoAuth mongoAuth
         0: .line 42
            aload 0 /* this */
            invokespecial io.vertx.ext.auth.AbstractUser.<init>:()V
         1: .line 43
            aload 0 /* this */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            aload 2 /* mongoAuth */
            invokeinterface io.vertx.ext.auth.mongo.MongoAuth.getUsernameField:()Ljava/lang/String;
            aload 1 /* username */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            putfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
         2: .line 44
            aload 0 /* this */
            aload 2 /* mongoAuth */
            putfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
         3: .line 45
            return
        end local 2 // io.vertx.ext.auth.mongo.MongoAuth mongoAuth
        end local 1 // java.lang.String username
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
            0    4     1   username  Ljava/lang/String;
            0    4     2  mongoAuth  Lio/vertx/ext/auth/mongo/MongoAuth;
    MethodParameters:
           Name  Flags
      username   
      mongoAuth  

  public void <init>(io.vertx.core.json.JsonObject, io.vertx.ext.auth.mongo.MongoAuth);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/ext/auth/mongo/MongoAuth;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
        start local 1 // io.vertx.core.json.JsonObject principal
        start local 2 // io.vertx.ext.auth.mongo.MongoAuth mongoAuth
         0: .line 47
            aload 0 /* this */
            invokespecial io.vertx.ext.auth.AbstractUser.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* principal */
            putfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
         2: .line 49
            aload 0 /* this */
            aload 2 /* mongoAuth */
            putfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
         3: .line 50
            return
        end local 2 // io.vertx.ext.auth.mongo.MongoAuth mongoAuth
        end local 1 // io.vertx.core.json.JsonObject principal
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
            0    4     1  principal  Lio/vertx/core/json/JsonObject;
            0    4     2  mongoAuth  Lio/vertx/ext/auth/mongo/MongoAuth;
    MethodParameters:
           Name  Flags
      principal  
      mongoAuth  

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
        start local 1 // java.lang.String permissionOrRole
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 59
            aload 1 /* permissionOrRole */
            ifnull 4
            aload 1 /* permissionOrRole */
            ldc "role:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 60
            aload 1 /* permissionOrRole */
            ldc "role:"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* roledef */
        start local 3 // java.lang.String roledef
         2: .line 61
            aload 0 /* this */
            aload 3 /* roledef */
            aload 2 /* resultHandler */
            invokevirtual io.vertx.ext.auth.mongo.impl.MongoUser.doHasRole:(Ljava/lang/String;Lio/vertx/core/Handler;)V
        end local 3 // java.lang.String roledef
         3: .line 62
            goto 5
         4: .line 63
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* permissionOrRole */
            aload 2 /* resultHandler */
            invokevirtual io.vertx.ext.auth.mongo.impl.MongoUser.doHasPermission:(Ljava/lang/String;Lio/vertx/core/Handler;)V
         5: .line 65
      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.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
            0    6     1  permissionOrRole  Ljava/lang/String;
            0    6     2     resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;
            2    3     3           roledef  Ljava/lang/String;
    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=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
         0: .line 74
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
            areturn
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/mongo/impl/MongoUser;

  public void setAuthProvider(io.vertx.ext.auth.AuthProvider);
    descriptor: (Lio/vertx/ext/auth/AuthProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
        start local 1 // io.vertx.ext.auth.AuthProvider authProvider
         0: .line 84
            aload 0 /* this */
            aload 1 /* authProvider */
            checkcast io.vertx.ext.auth.mongo.MongoAuth
            putfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
         1: .line 85
            return
        end local 1 // io.vertx.ext.auth.AuthProvider authProvider
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
            0    2     1  authProvider  Lio/vertx/ext/auth/AuthProvider;
    MethodParameters:
              Name  Flags
      authProvider  

  protected void doHasRole(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=4, args_size=3
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
        start local 1 // java.lang.String role
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 97
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
            invokeinterface io.vertx.ext.auth.mongo.MongoAuth.getRoleField:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.getJsonArray:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
            astore 3 /* roles */
        start local 3 // io.vertx.core.json.JsonArray roles
         1: .line 98
            aload 2 /* resultHandler */
            aload 3 /* roles */
            ifnull 2
            aload 3 /* roles */
            aload 1 /* role */
            invokevirtual io.vertx.core.json.JsonArray.contains:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.ext.auth.mongo.impl.MongoUser java.lang.String io.vertx.core.Handler io.vertx.core.json.JsonArray
      StackMap stack: io.vertx.core.Handler
         2: iconst_0
      StackMap locals: io.vertx.ext.auth.mongo.impl.MongoUser java.lang.String io.vertx.core.Handler io.vertx.core.json.JsonArray
      StackMap stack: io.vertx.core.Handler int
         3: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 3 // io.vertx.core.json.JsonArray roles
         4: .line 99
            goto 7
      StackMap locals: io.vertx.ext.auth.mongo.impl.MongoUser java.lang.String io.vertx.core.Handler
      StackMap stack: java.lang.Throwable
         5: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         6: .line 100
            aload 2 /* resultHandler */
            aload 3 /* e */
            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 // java.lang.Throwable e
         7: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String role
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
            0    8     1           role  Ljava/lang/String;
            0    8     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;
            1    4     3          roles  Lio/vertx/core/json/JsonArray;
            6    7     3              e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Throwable
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;)V
    MethodParameters:
               Name  Flags
      role           
      resultHandler  

  public java.lang.String getSalt();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
         0: .line 111
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
            invokeinterface io.vertx.ext.auth.mongo.MongoAuth.getSaltField:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/mongo/impl/MongoUser;

  public java.lang.String getPassword();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
         0: .line 120
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
            invokeinterface io.vertx.ext.auth.mongo.MongoAuth.getPasswordField:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/mongo/impl/MongoUser;

  protected void doHasPermission(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=4, args_size=3
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
        start local 1 // java.lang.String permission
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 134
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.mongoAuth:Lio/vertx/ext/auth/mongo/MongoAuth;
            invokeinterface io.vertx.ext.auth.mongo.MongoAuth.getPermissionField:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.getJsonArray:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
            astore 3 /* userPermissions */
        start local 3 // io.vertx.core.json.JsonArray userPermissions
         1: .line 135
            aload 2 /* resultHandler */
            aload 3 /* userPermissions */
            ifnull 2
            aload 3 /* userPermissions */
            aload 1 /* permission */
            invokevirtual io.vertx.core.json.JsonArray.contains:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.ext.auth.mongo.impl.MongoUser java.lang.String io.vertx.core.Handler io.vertx.core.json.JsonArray
      StackMap stack: io.vertx.core.Handler
         2: iconst_0
      StackMap locals: io.vertx.ext.auth.mongo.impl.MongoUser java.lang.String io.vertx.core.Handler io.vertx.core.json.JsonArray
      StackMap stack: io.vertx.core.Handler int
         3: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 3 // io.vertx.core.json.JsonArray userPermissions
         4: .line 136
            goto 7
      StackMap locals: io.vertx.ext.auth.mongo.impl.MongoUser java.lang.String io.vertx.core.Handler
      StackMap stack: java.lang.Throwable
         5: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         6: .line 137
            aload 2 /* resultHandler */
            aload 3 /* e */
            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 // java.lang.Throwable e
         7: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String permission
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
            0    8     1       permission  Ljava/lang/String;
            0    8     2    resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;
            1    4     3  userPermissions  Lio/vertx/core/json/JsonArray;
            6    7     3                e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Throwable
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;)V
    MethodParameters:
               Name  Flags
      permission     
      resultHandler  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
         0: .line 143
            aload 0 /* this */
            getfield io.vertx.ext.auth.mongo.impl.MongoUser.principal:Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.ext.auth.mongo.impl.MongoUser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/mongo/impl/MongoUser;
}
SourceFile: "MongoUser.java"