public interface io.vertx.ext.auth.mongo.MongoAuth extends io.vertx.ext.auth.AuthProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.vertx.ext.auth.mongo.MongoAuth
  super_class: java.lang.Object
{
  public static final java.lang.String PROPERTY_COLLECTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "collectionName"

  public static final java.lang.String PROPERTY_USERNAME_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "usernameField"

  public static final java.lang.String PROPERTY_ROLE_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "roleField"

  public static final java.lang.String PROPERTY_PERMISSION_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "permissionField"

  public static final java.lang.String PROPERTY_PASSWORD_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "passwordField"

  public static final java.lang.String PROPERTY_CREDENTIAL_USERNAME_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "usernameCredentialField"

  public static final java.lang.String PROPERTY_CREDENTIAL_PASSWORD_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "passwordCredentialField"

  public static final java.lang.String PROPERTY_SALT_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "saltField"

  public static final java.lang.String PROPERTY_SALT_STYLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "saltStyle"

  public static final java.lang.String DEFAULT_COLLECTION_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "user"

  public static final java.lang.String DEFAULT_USERNAME_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "username"

  public static final java.lang.String DEFAULT_PASSWORD_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "password"

  public static final java.lang.String DEFAULT_ROLE_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "roles"

  public static final java.lang.String DEFAULT_PERMISSION_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "permissions"

  public static final java.lang.String DEFAULT_CREDENTIAL_USERNAME_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "username"

  public static final java.lang.String DEFAULT_CREDENTIAL_PASSWORD_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "password"

  public static final java.lang.String DEFAULT_SALT_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "salt"

  public static final java.lang.String ROLE_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "role:"

  public static io.vertx.ext.auth.mongo.MongoAuth create(io.vertx.ext.mongo.MongoClient, io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/ext/mongo/MongoClient;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.MongoClient mongoClient
        start local 1 // io.vertx.core.json.JsonObject config
         0: .line 154
            new io.vertx.ext.auth.mongo.impl.MongoAuthImpl
            dup
            aload 0 /* mongoClient */
            aload 1 /* config */
            invokespecial io.vertx.ext.auth.mongo.impl.MongoAuthImpl.<init>:(Lio/vertx/ext/mongo/MongoClient;Lio/vertx/core/json/JsonObject;)V
            areturn
        end local 1 // io.vertx.core.json.JsonObject config
        end local 0 // io.vertx.ext.mongo.MongoClient mongoClient
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  mongoClient  Lio/vertx/ext/mongo/MongoClient;
            0    1     1       config  Lio/vertx/core/json/JsonObject;
    MethodParameters:
             Name  Flags
      mongoClient  
      config       

  public abstract io.vertx.ext.auth.mongo.MongoAuth setCollectionName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
                Name  Flags
      collectionName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setUsernameField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setPasswordField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setRoleField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setPermissionField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setUsernameCredentialField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setPasswordCredentialField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract io.vertx.ext.auth.mongo.MongoAuth setSaltField(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
           Name  Flags
      fieldName  

  public abstract java.lang.String getCollectionName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getUsernameField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getPasswordField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getRoleField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getPermissionField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getUsernameCredentialField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getPasswordCredentialField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getSaltField();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract io.vertx.ext.auth.mongo.MongoAuth setHashStrategy(io.vertx.ext.auth.mongo.HashStrategy);
    descriptor: (Lio/vertx/ext/auth/mongo/HashStrategy;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
              Name  Flags
      hashStrategy  

  public abstract io.vertx.ext.auth.mongo.HashStrategy getHashStrategy();
    descriptor: ()Lio/vertx/ext/auth/mongo/HashStrategy;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract io.vertx.ext.auth.mongo.MongoAuth setHashAlgorithm(io.vertx.ext.auth.mongo.HashAlgorithm);
    descriptor: (Lio/vertx/ext/auth/mongo/HashAlgorithm;)Lio/vertx/ext/auth/mongo/MongoAuth;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
    MethodParameters:
               Name  Flags
      hashAlgorithm  

  public abstract void insertUser(java.lang.String, java.lang.String, java.util.List<java.lang.String>, java.util.List<java.lang.String>, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lio/vertx/core/Handler;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)V
    MethodParameters:
               Name  Flags
      username       
      password       
      roles          
      permissions    
      resultHandler  

  public io.vertx.core.Future<java.lang.String> insertUser(java.lang.String, java.lang.String, java.util.List<java.lang.String>, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // io.vertx.ext.auth.mongo.MongoAuth this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
        start local 3 // java.util.List roles
        start local 4 // java.util.List permissions
         0: .line 365
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 5 /* promise */
        start local 5 // io.vertx.core.Promise promise
         1: .line 366
            aload 0 /* this */
            aload 1 /* username */
            aload 2 /* password */
            aload 3 /* roles */
            aload 4 /* permissions */
            aload 5 /* promise */
            invokeinterface io.vertx.ext.auth.mongo.MongoAuth.insertUser:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lio/vertx/core/Handler;)V
         2: .line 367
            aload 5 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 5 // io.vertx.core.Promise promise
        end local 4 // java.util.List permissions
        end local 3 // java.util.List roles
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // io.vertx.ext.auth.mongo.MongoAuth this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/vertx/ext/auth/mongo/MongoAuth;
            0    3     1     username  Ljava/lang/String;
            0    3     2     password  Ljava/lang/String;
            0    3     3        roles  Ljava/util/List<Ljava/lang/String;>;
            0    3     4  permissions  Ljava/util/List<Ljava/lang/String;>;
            1    3     5      promise  Lio/vertx/core/Promise<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;)Lio/vertx/core/Future<Ljava/lang/String;>;
    MethodParameters:
             Name  Flags
      username     
      password     
      roles        
      permissions  
}
SourceFile: "MongoAuth.java"
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.VertxGen()