public interface io.vertx.ext.auth.User
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.vertx.ext.auth.User
  super_class: java.lang.Object
{
  public static io.vertx.ext.auth.User fromName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/User;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String username
         0: .line 53
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "username"
            aload 0 /* username */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.auth.User.create:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/User;
            areturn
        end local 0 // java.lang.String username
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  username  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      username  

  public static io.vertx.ext.auth.User fromToken(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/ext/auth/User;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String token
         0: .line 66
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "access_token"
            aload 0 /* token */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            invokestatic io.vertx.ext.auth.User.create:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/User;
            areturn
        end local 0 // java.lang.String token
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  token  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      token  

  public static io.vertx.ext.auth.User create(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/User;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.core.json.JsonObject principal
         0: .line 77
            aload 0 /* principal */
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            invokestatic io.vertx.ext.auth.User.create:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/User;
            areturn
        end local 0 // io.vertx.core.json.JsonObject principal
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  principal  Lio/vertx/core/json/JsonObject;
    MethodParameters:
           Name  Flags
      principal  

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

  public abstract io.vertx.core.json.JsonObject attributes();
    descriptor: ()Lio/vertx/core/json/JsonObject;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public boolean expired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.User this
         0: .line 107
            aload 0 /* this */
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "leeway"
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual io.vertx.core.json.JsonObject.getInteger:(Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface io.vertx.ext.auth.User.expired:(I)Z
            ireturn
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/User;

  public boolean expired(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // io.vertx.ext.auth.User this
        start local 1 // int leeway
         0: .line 134
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 1000
            ldiv
            lstore 2 /* now */
        start local 2 // long now
         1: .line 136
            aload 0 /* this */
            ldc "exp"
            invokeinterface io.vertx.ext.auth.User.containsKey:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 137
            lload 2 /* now */
            iload 1 /* leeway */
            i2l
            lsub
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "exp"
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.principal:()Lio/vertx/core/json/JsonObject;
            ldc "exp"
            invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;)Ljava/lang/Long;
            invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
            lcmp
            iflt 4
         3: .line 138
            iconst_1
            ireturn
         4: .line 142
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            ldc "iat"
            invokeinterface io.vertx.ext.auth.User.containsKey:(Ljava/lang/String;)Z
            ifeq 8
         5: .line 143
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "iat"
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.principal:()Lio/vertx/core/json/JsonObject;
            ldc "iat"
            invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;)Ljava/lang/Long;
            invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
            astore 4 /* iat */
        start local 4 // java.lang.Long iat
         6: .line 145
            aload 4 /* iat */
            invokevirtual java.lang.Long.longValue:()J
            lload 2 /* now */
            iload 1 /* leeway */
            i2l
            ladd
            lcmp
            ifle 8
         7: .line 146
            iconst_1
            ireturn
        end local 4 // java.lang.Long iat
         8: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "nbf"
            invokeinterface io.vertx.ext.auth.User.containsKey:(Ljava/lang/String;)Z
            ifeq 12
         9: .line 151
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "nbf"
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.principal:()Lio/vertx/core/json/JsonObject;
            ldc "nbf"
            invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;)Ljava/lang/Long;
            invokevirtual io.vertx.core.json.JsonObject.getLong:(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
            astore 4 /* nbf */
        start local 4 // java.lang.Long nbf
        10: .line 153
            aload 4 /* nbf */
            invokevirtual java.lang.Long.longValue:()J
            lload 2 /* now */
            iload 1 /* leeway */
            i2l
            ladd
            lcmp
            ifle 12
        11: .line 154
            iconst_1
            ireturn
        end local 4 // java.lang.Long nbf
        12: .line 158
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // long now
        end local 1 // int leeway
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lio/vertx/ext/auth/User;
            0   13     1  leeway  I
            1   13     2     now  J
            6    8     4     iat  Ljava/lang/Long;
           10   12     4     nbf  Ljava/lang/Long;
    MethodParameters:
        Name  Flags
      leeway  

  public <T> T get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.auth.User this
        start local 1 // java.lang.String key
         0: .line 175
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "rootClaim"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 7
         1: .line 178
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "rootClaim"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.getJsonObject:(Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            astore 2 /* rootClaim */
        start local 2 // io.vertx.core.json.JsonObject rootClaim
         2: .line 179
            goto 5
        end local 2 // io.vertx.core.json.JsonObject rootClaim
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
         3: pop
         4: .line 181
            aconst_null
            astore 2 /* rootClaim */
        start local 2 // io.vertx.core.json.JsonObject rootClaim
         5: .line 183
      StackMap locals: io.vertx.core.json.JsonObject
      StackMap stack:
            aload 2 /* rootClaim */
            ifnull 7
            aload 2 /* rootClaim */
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 184
            aload 2 /* rootClaim */
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        end local 2 // io.vertx.core.json.JsonObject rootClaim
         7: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 188
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
         9: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.principal:()Lio/vertx/core/json/JsonObject;
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 191
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.principal:()Lio/vertx/core/json/JsonObject;
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
        11: .line 193
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String key
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lio/vertx/ext/auth/User;
            0   12     1        key  Ljava/lang/String;
            2    3     2  rootClaim  Lio/vertx/core/json/JsonObject;
            5    7     2  rootClaim  Lio/vertx/core/json/JsonObject;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassCastException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;)TT;
    MethodParameters:
      Name  Flags
      key   

  public boolean containsKey(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.auth.User this
        start local 1 // java.lang.String key
         0: .line 208
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "rootClaim"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 7
         1: .line 211
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            ldc "rootClaim"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.getJsonObject:(Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            astore 2 /* rootClaim */
        start local 2 // io.vertx.core.json.JsonObject rootClaim
         2: .line 212
            goto 5
        end local 2 // io.vertx.core.json.JsonObject rootClaim
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
         3: pop
         4: .line 214
            aconst_null
            astore 2 /* rootClaim */
        start local 2 // io.vertx.core.json.JsonObject rootClaim
         5: .line 216
      StackMap locals: io.vertx.core.json.JsonObject
      StackMap stack:
            aload 2 /* rootClaim */
            ifnull 7
            aload 2 /* rootClaim */
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 217
            iconst_1
            ireturn
        end local 2 // io.vertx.core.json.JsonObject rootClaim
         7: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.attributes:()Lio/vertx/core/json/JsonObject;
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifne 8
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.principal:()Lio/vertx/core/json/JsonObject;
            aload 1 /* key */
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifne 8
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_1
            ireturn
        end local 1 // java.lang.String key
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lio/vertx/ext/auth/User;
            0    9     1        key  Ljava/lang/String;
            2    3     2  rootClaim  Lio/vertx/core/json/JsonObject;
            5    7     2  rootClaim  Lio/vertx/core/json/JsonObject;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassCastException
    MethodParameters:
      Name  Flags
      key   

  public io.vertx.ext.auth.authorization.Authorizations authorizations();
    descriptor: ()Lio/vertx/ext/auth/authorization/Authorizations;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.User this
         0: .line 229
            new io.vertx.ext.auth.authorization.impl.AuthorizationsImpl
            dup
            invokespecial io.vertx.ext.auth.authorization.impl.AuthorizationsImpl.<init>:()V
            areturn
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/auth/User;

  public abstract io.vertx.ext.auth.User isAuthorized(io.vertx.ext.auth.authorization.Authorization, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Boolean>>);
    descriptor: (Lio/vertx/ext/auth/authorization/Authorization;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/User;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lio/vertx/ext/auth/authorization/Authorization;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Boolean;>;>;)Lio/vertx/ext/auth/User;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      authority      
      resultHandler  

  public io.vertx.ext.auth.User isAuthorized(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Boolean>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/User;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.ext.auth.User this
        start local 1 // java.lang.String authority
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 260
            aload 0 /* this */
         1: .line 261
            aload 1 /* authority */
            ldc "role:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 262
            aload 1 /* authority */
            iconst_5
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic io.vertx.ext.auth.authorization.RoleBasedAuthorization.create:(Ljava/lang/String;)Lio/vertx/ext/auth/authorization/RoleBasedAuthorization;
            goto 4
         3: .line 263
      StackMap locals:
      StackMap stack: io.vertx.ext.auth.User
            aload 1 /* authority */
            invokestatic io.vertx.ext.auth.authorization.WildcardPermissionBasedAuthorization.create:(Ljava/lang/String;)Lio/vertx/ext/auth/authorization/WildcardPermissionBasedAuthorization;
      StackMap locals: io.vertx.ext.auth.User java.lang.String io.vertx.core.Handler
      StackMap stack: io.vertx.ext.auth.User io.vertx.ext.auth.authorization.Authorization
         4: aload 2 /* resultHandler */
         5: .line 260
            invokeinterface io.vertx.ext.auth.User.isAuthorized:(Lio/vertx/ext/auth/authorization/Authorization;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/User;
            areturn
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String authority
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lio/vertx/ext/auth/User;
            0    6     1      authority  Ljava/lang/String;
            0    6     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;>;>;)Lio/vertx/ext/auth/User;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      authority      
      resultHandler  

  public io.vertx.core.Future<java.lang.Boolean> isAuthorized(io.vertx.ext.auth.authorization.Authorization);
    descriptor: (Lio/vertx/ext/auth/authorization/Authorization;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.auth.User this
        start local 1 // io.vertx.ext.auth.authorization.Authorization authority
         0: .line 278
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 279
            aload 0 /* this */
            aload 1 /* authority */
            aload 2 /* promise */
            invokeinterface io.vertx.ext.auth.User.isAuthorized:(Lio/vertx/ext/auth/authorization/Authorization;Lio/vertx/core/Handler;)Lio/vertx/ext/auth/User;
            pop
         2: .line 280
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // io.vertx.ext.auth.authorization.Authorization authority
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lio/vertx/ext/auth/User;
            0    3     1  authority  Lio/vertx/ext/auth/authorization/Authorization;
            1    3     2    promise  Lio/vertx/core/Promise<Ljava/lang/Boolean;>;
    Signature: (Lio/vertx/ext/auth/authorization/Authorization;)Lio/vertx/core/Future<Ljava/lang/Boolean;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      authority  

  public io.vertx.core.Future<java.lang.Boolean> isAuthorized(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.auth.User this
        start local 1 // java.lang.String authority
         0: .line 296
            aload 0 /* this */
         1: .line 297
            aload 1 /* authority */
            ldc "role:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 298
            aload 1 /* authority */
            iconst_5
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic io.vertx.ext.auth.authorization.RoleBasedAuthorization.create:(Ljava/lang/String;)Lio/vertx/ext/auth/authorization/RoleBasedAuthorization;
            goto 4
         3: .line 299
      StackMap locals:
      StackMap stack: io.vertx.ext.auth.User
            aload 1 /* authority */
            invokestatic io.vertx.ext.auth.authorization.WildcardPermissionBasedAuthorization.create:(Ljava/lang/String;)Lio/vertx/ext/auth/authorization/WildcardPermissionBasedAuthorization;
         4: .line 296
      StackMap locals: io.vertx.ext.auth.User java.lang.String
      StackMap stack: io.vertx.ext.auth.User io.vertx.ext.auth.authorization.Authorization
            invokeinterface io.vertx.ext.auth.User.isAuthorized:(Lio/vertx/ext/auth/authorization/Authorization;)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String authority
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lio/vertx/ext/auth/User;
            0    5     1  authority  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Boolean;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      authority  

  public io.vertx.ext.auth.User clearCache();
    descriptor: ()Lio/vertx/ext/auth/User;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.User this
         0: .line 312
            aload 0 /* this */
            invokeinterface io.vertx.ext.auth.User.authorizations:()Lio/vertx/ext/auth/authorization/Authorizations;
            invokeinterface io.vertx.ext.auth.authorization.Authorizations.clear:()Lio/vertx/ext/auth/authorization/Authorizations;
            pop
         1: .line 313
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.ext.auth.User this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/auth/User;
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.Fluent()
      java.lang.Deprecated()

  public abstract io.vertx.core.json.JsonObject principal();
    descriptor: ()Lio/vertx/core/json/JsonObject;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void setAuthProvider(io.vertx.ext.auth.AuthProvider);
    descriptor: (Lio/vertx/ext/auth/AuthProvider;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      authProvider  
}
SourceFile: "User.java"
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.VertxGen()