github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/retrofit/auth/HttpBearerAuth.mustache (about)

     1  package {{invokerPackage}}.auth;
     2  
     3  import java.io.IOException;
     4  
     5  import com.squareup.okhttp.Interceptor;
     6  import com.squareup.okhttp.Request;
     7  import com.squareup.okhttp.Response;
     8  
     9  public class HttpBearerAuth implements Interceptor {
    10      private final String scheme;
    11      private String bearerToken;
    12  
    13      public HttpBearerAuth(String scheme) {
    14          this.scheme = scheme;
    15      }
    16  
    17      public String getBearerToken() {
    18          return bearerToken;
    19      }
    20  
    21      public void setBearerToken(String bearerToken) {
    22          this.bearerToken = bearerToken;
    23      }
    24  
    25      @Override
    26      public Response intercept(Chain chain) throws IOException {
    27          Request request = chain.request();
    28  
    29          // If the request already have an authorization (eg. Basic auth), do nothing
    30          if (request.header("Authorization") == null && bearerToken != null) {
    31              request = request.newBuilder()
    32                      .addHeader("Authorization", (scheme != null ? upperCaseBearer(scheme) + " " : "") + bearerToken)
    33                      .build();
    34          }
    35          return chain.proceed(request);
    36      }
    37  
    38      private static String upperCaseBearer(String scheme) {
    39          return ("bearer".equalsIgnoreCase(scheme)) ? "Bearer" : scheme;
    40      }
    41  
    42  }