BearerTokenAuthenticationPolicy Class

  • java.lang.Object
    • com.azure.core.http.policy.BearerTokenAuthenticationPolicy

Implements

public class BearerTokenAuthenticationPolicy
implements HttpPipelinePolicy

The BearerTokenAuthenticationPolicy class is an implementation of the HttpPipelinePolicy interface. This policy uses a TokenCredential to authenticate the request with a bearer token.

This class is useful when you need to authorize requests with a bearer token from Azure. It ensures that the requests are sent over HTTPS to prevent the token from being leaked.

Code sample:

In this example, a BearerTokenAuthenticationPolicy is created with a TokenCredential and a scope. The policy can then added to the pipeline. The request sent via the pipeline will then include the Authorization header with the bearer token.

TokenCredential credential = new BasicAuthenticationCredential("username", "password");
 BearerTokenAuthenticationPolicy policy = new BearerTokenAuthenticationPolicy(credential,
     "https://management.azure.com/.default");

Constructor Summary

Constructor Description
BearerTokenAuthenticationPolicy(TokenCredential credential, String[] scopes)

Creates BearerTokenAuthenticationPolicy.

Method Summary

Modifier and Type Method and Description
Mono<Void> authorizeRequest(HttpPipelineCallContext context)

Executed before sending the initial request and authenticates the request.

Mono<Boolean> authorizeRequestOnChallenge(HttpPipelineCallContext context, HttpResponse response)

Handles the authentication challenge in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request and returns appropriate TokenRequestContext to be used for re-authentication.

boolean authorizeRequestOnChallengeSync(HttpPipelineCallContext context, HttpResponse response)

Handles the authentication challenge in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request and returns appropriate TokenRequestContext to be used for re-authentication.

void authorizeRequestSync(HttpPipelineCallContext context)

Synchronously executed before sending the initial request and authenticates the request.

Mono<HttpResponse> process(HttpPipelineCallContext context, HttpPipelineNextPolicy next)

Processes provided request context and invokes the next policy.

HttpResponse processSync(HttpPipelineCallContext context, HttpPipelineNextSyncPolicy next)

Processes provided request context and invokes the next policy synchronously.

Mono<Void> setAuthorizationHeader(HttpPipelineCallContext context, TokenRequestContext tokenRequestContext)

Authorizes the request with the bearer token acquired using the specified tokenRequestContext

void setAuthorizationHeaderSync(HttpPipelineCallContext context, TokenRequestContext tokenRequestContext)

Authorizes the request with the bearer token acquired using the specified tokenRequestContext

Methods inherited from java.lang.Object

Constructor Details

BearerTokenAuthenticationPolicy

public BearerTokenAuthenticationPolicy(TokenCredential credential, String[] scopes)

Creates BearerTokenAuthenticationPolicy.

Parameters:

credential - the token credential to authenticate the request
scopes - the scopes of authentication the credential should get token for

Method Details

authorizeRequest

public Mono authorizeRequest(HttpPipelineCallContext context)

Executed before sending the initial request and authenticates the request.

Parameters:

context - The request context.

Returns:

A Mono containing Void

authorizeRequestOnChallenge

public Mono authorizeRequestOnChallenge(HttpPipelineCallContext context, HttpResponse response)

Handles the authentication challenge in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request and returns appropriate TokenRequestContext to be used for re-authentication.

The default implementation will attempt to handle Continuous Access Evaluation (CAE) challenges.

Parameters:

context - The request context.
response - The Http Response containing the authentication challenge header.

Returns:

A Mono containing TokenRequestContext

authorizeRequestOnChallengeSync

public boolean authorizeRequestOnChallengeSync(HttpPipelineCallContext context, HttpResponse response)

Handles the authentication challenge in the event a 401 response with a WWW-Authenticate authentication challenge header is received after the initial request and returns appropriate TokenRequestContext to be used for re-authentication.

The default implementation will attempt to handle Continuous Access Evaluation (CAE) challenges.

Parameters:

context - The request context.
response - The Http Response containing the authentication challenge header.

Returns:

A boolean indicating if containing the TokenRequestContext for re-authentication

authorizeRequestSync

public void authorizeRequestSync(HttpPipelineCallContext context)

Synchronously executed before sending the initial request and authenticates the request.

Parameters:

context - The request context.

process

public Mono process(HttpPipelineCallContext context, HttpPipelineNextPolicy next)

Processes provided request context and invokes the next policy.

Parameters:

context
next

processSync

public HttpResponse processSync(HttpPipelineCallContext context, HttpPipelineNextSyncPolicy next)

Processes provided request context and invokes the next policy synchronously.

Parameters:

context
next

setAuthorizationHeader

public Mono setAuthorizationHeader(HttpPipelineCallContext context, TokenRequestContext tokenRequestContext)

Authorizes the request with the bearer token acquired using the specified tokenRequestContext

Parameters:

context - the HTTP pipeline context.
tokenRequestContext - the token request context to be used for token acquisition.

Returns:

a Mono containing Void

setAuthorizationHeaderSync

public void setAuthorizationHeaderSync(HttpPipelineCallContext context, TokenRequestContext tokenRequestContext)

Authorizes the request with the bearer token acquired using the specified tokenRequestContext

Parameters:

context - the HTTP pipeline context.
tokenRequestContext - the token request context to be used for token acquisition.

Applies to