public abstract class io.dropwizard.auth.AuthFilter$AuthFilterBuilder<C, P extends java.security.Principal, T extends io.dropwizard.auth.AuthFilter<C, P>>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.dropwizard.auth.AuthFilter$AuthFilterBuilder
  super_class: java.lang.Object
{
  private java.lang.String realm;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  private io.dropwizard.auth.Authenticator<C, P> authenticator;
    descriptor: Lio/dropwizard/auth/Authenticator;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/dropwizard/auth/Authenticator<TC;TP;>;

  private io.dropwizard.auth.Authorizer<P> authorizer;
    descriptor: Lio/dropwizard/auth/Authorizer;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/dropwizard/auth/Authorizer<TP;>;

  private io.dropwizard.auth.UnauthorizedHandler unauthorizedHandler;
    descriptor: Lio/dropwizard/auth/UnauthorizedHandler;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
         0: .line 34
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
            ldc "realm"
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.realm:Ljava/lang/String;
         2: .line 37
            aload 0 /* this */
            ldc "Basic"
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.prefix:Ljava/lang/String;
         3: .line 38
            aload 0 /* this */
            invokedynamic authenticate()Lio/dropwizard/auth/Authenticator;
              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;)Ljava/util/Optional;
                  io/dropwizard/auth/AuthFilter$AuthFilterBuilder.lambda$0(Ljava/lang/Object;)Ljava/util/Optional; (6)
                  (Ljava/lang/Object;)Ljava/util/Optional;
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authenticator:Lio/dropwizard/auth/Authenticator;
         4: .line 39
            aload 0 /* this */
            new io.dropwizard.auth.PermitAllAuthorizer
            dup
            invokespecial io.dropwizard.auth.PermitAllAuthorizer.<init>:()V
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authorizer:Lio/dropwizard/auth/Authorizer;
         5: .line 40
            aload 0 /* this */
            new io.dropwizard.auth.DefaultUnauthorizedHandler
            dup
            invokespecial io.dropwizard.auth.DefaultUnauthorizedHandler.<init>:()V
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.unauthorizedHandler:Lio/dropwizard/auth/UnauthorizedHandler;
         6: .line 34
            return
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;

  public io.dropwizard.auth.AuthFilter$AuthFilterBuilder<C, P, T> setRealm(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
        start local 1 // java.lang.String realm
         0: .line 49
            aload 0 /* this */
            aload 1 /* realm */
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.realm:Ljava/lang/String;
         1: .line 50
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String realm
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
            0    2     1  realm  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
    MethodParameters:
       Name  Flags
      realm  

  public io.dropwizard.auth.AuthFilter$AuthFilterBuilder<C, P, T> setPrefix(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
        start local 1 // java.lang.String prefix
         0: .line 60
            aload 0 /* this */
            aload 1 /* prefix */
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.prefix:Ljava/lang/String;
         1: .line 61
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String prefix
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
            0    2     1  prefix  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
    MethodParameters:
        Name  Flags
      prefix  

  public io.dropwizard.auth.AuthFilter$AuthFilterBuilder<C, P, T> setAuthorizer(io.dropwizard.auth.Authorizer<P>);
    descriptor: (Lio/dropwizard/auth/Authorizer;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
        start local 1 // io.dropwizard.auth.Authorizer authorizer
         0: .line 71
            aload 0 /* this */
            aload 1 /* authorizer */
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authorizer:Lio/dropwizard/auth/Authorizer;
         1: .line 72
            aload 0 /* this */
            areturn
        end local 1 // io.dropwizard.auth.Authorizer authorizer
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
            0    2     1  authorizer  Lio/dropwizard/auth/Authorizer<TP;>;
    Signature: (Lio/dropwizard/auth/Authorizer<TP;>;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
    MethodParameters:
            Name  Flags
      authorizer  

  public io.dropwizard.auth.AuthFilter$AuthFilterBuilder<C, P, T> setAuthenticator(io.dropwizard.auth.Authenticator<C, P>);
    descriptor: (Lio/dropwizard/auth/Authenticator;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
        start local 1 // io.dropwizard.auth.Authenticator authenticator
         0: .line 82
            aload 0 /* this */
            aload 1 /* authenticator */
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authenticator:Lio/dropwizard/auth/Authenticator;
         1: .line 83
            aload 0 /* this */
            areturn
        end local 1 // io.dropwizard.auth.Authenticator authenticator
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
            0    2     1  authenticator  Lio/dropwizard/auth/Authenticator<TC;TP;>;
    Signature: (Lio/dropwizard/auth/Authenticator<TC;TP;>;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
    MethodParameters:
               Name  Flags
      authenticator  

  public io.dropwizard.auth.AuthFilter$AuthFilterBuilder<C, P, T> setUnauthorizedHandler(io.dropwizard.auth.UnauthorizedHandler);
    descriptor: (Lio/dropwizard/auth/UnauthorizedHandler;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
        start local 1 // io.dropwizard.auth.UnauthorizedHandler unauthorizedHandler
         0: .line 93
            aload 0 /* this */
            aload 1 /* unauthorizedHandler */
            putfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.unauthorizedHandler:Lio/dropwizard/auth/UnauthorizedHandler;
         1: .line 94
            aload 0 /* this */
            areturn
        end local 1 // io.dropwizard.auth.UnauthorizedHandler unauthorizedHandler
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
            0    2     1  unauthorizedHandler  Lio/dropwizard/auth/UnauthorizedHandler;
    Signature: (Lio/dropwizard/auth/UnauthorizedHandler;)Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
    MethodParameters:
                     Name  Flags
      unauthorizedHandler  

  public T buildAuthFilter();
    descriptor: ()Lio/dropwizard/auth/AuthFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
         0: .line 104
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.realm:Ljava/lang/String;
            ldc "Realm is not set"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 105
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.prefix:Ljava/lang/String;
            ldc "Prefix is not set"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 106
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authenticator:Lio/dropwizard/auth/Authenticator;
            ldc "Authenticator is not set"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 107
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authorizer:Lio/dropwizard/auth/Authorizer;
            ldc "Authorizer is not set"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 108
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.unauthorizedHandler:Lio/dropwizard/auth/UnauthorizedHandler;
            ldc "Unauthorized handler is not set"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 110
            aload 0 /* this */
            invokevirtual io.dropwizard.auth.AuthFilter$AuthFilterBuilder.newInstance:()Lio/dropwizard/auth/AuthFilter;
            astore 1 /* authFilter */
        start local 1 // io.dropwizard.auth.AuthFilter authFilter
         6: .line 111
            aload 1 /* authFilter */
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authorizer:Lio/dropwizard/auth/Authorizer;
            putfield io.dropwizard.auth.AuthFilter.authorizer:Lio/dropwizard/auth/Authorizer;
         7: .line 112
            aload 1 /* authFilter */
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.authenticator:Lio/dropwizard/auth/Authenticator;
            putfield io.dropwizard.auth.AuthFilter.authenticator:Lio/dropwizard/auth/Authenticator;
         8: .line 113
            aload 1 /* authFilter */
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.prefix:Ljava/lang/String;
            putfield io.dropwizard.auth.AuthFilter.prefix:Ljava/lang/String;
         9: .line 114
            aload 1 /* authFilter */
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.realm:Ljava/lang/String;
            putfield io.dropwizard.auth.AuthFilter.realm:Ljava/lang/String;
        10: .line 115
            aload 1 /* authFilter */
            aload 0 /* this */
            getfield io.dropwizard.auth.AuthFilter$AuthFilterBuilder.unauthorizedHandler:Lio/dropwizard/auth/UnauthorizedHandler;
            putfield io.dropwizard.auth.AuthFilter.unauthorizedHandler:Lio/dropwizard/auth/UnauthorizedHandler;
        11: .line 116
            aload 1 /* authFilter */
            areturn
        end local 1 // io.dropwizard.auth.AuthFilter authFilter
        end local 0 // io.dropwizard.auth.AuthFilter$AuthFilterBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lio/dropwizard/auth/AuthFilter$AuthFilterBuilder<TC;TP;TT;>;
            6   12     1  authFilter  TT;
    Signature: ()TT;

  protected abstract T newInstance();
    descriptor: ()Lio/dropwizard/auth/AuthFilter;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: ()TT;

  private static java.util.Optional lambda$0(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/util/Optional;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object credentials
         0: .line 38
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
        end local 0 // java.lang.Object credentials
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  credentials  TC;
    Exceptions:
      throws io.dropwizard.auth.AuthenticationException
}
Signature: <C:Ljava/lang/Object;P::Ljava/security/Principal;T:Lio/dropwizard/auth/AuthFilter<TC;TP;>;>Ljava/lang/Object;
SourceFile: "AuthFilter.java"
NestHost: io.dropwizard.auth.AuthFilter
InnerClasses:
  public abstract AuthFilterBuilder = io.dropwizard.auth.AuthFilter$AuthFilterBuilder of io.dropwizard.auth.AuthFilter
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles