All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.identity.SharedTokenCacheCredentialBuilder Maven / Gradle / Ivy

The newest version!
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.identity;

/**
 * Fluent credential builder for instantiating a {@link SharedTokenCacheCredential}.
 *
 * 

This credential is a legacy mechanism for authenticating clients using credentials provided to Visual Studio Code. * This mechanism for Visual Studio authentication has been replaced by the {@link VisualStudioCodeCredential}/>.

* * @see SharedTokenCacheCredential */ public class SharedTokenCacheCredentialBuilder extends AadCredentialBuilderBase { private String username; /** * Constructs an instance of SharedTokenCacheCredentialBuilder. */ public SharedTokenCacheCredentialBuilder() { super(); } private TokenCachePersistenceOptions tokenCachePersistenceOptions = new TokenCachePersistenceOptions().setUnencryptedStorageAllowed(true); /** * Sets the username for the account. * * @param username The username for the account. * * @return The updated SharedTokenCacheCredentialBuilder object. */ public SharedTokenCacheCredentialBuilder username(String username) { this.username = username; return this; } /** * Disallows the use of an unprotected file specified by cacheFileLocation() instead of * Gnome keyring on Linux. This is enabled by default. * * @return An updated instance of this builder. */ SharedTokenCacheCredentialBuilder disallowUnencryptedCache() { this.tokenCachePersistenceOptions.setUnencryptedStorageAllowed(false); return this; } /** * Configures the persistent shared token cache options and enables the persistent token cache which is disabled * by default. If configured, the credential will store tokens in a cache persisted to the machine, protected to * the current user, which can be shared by other credentials and processes. * * @param tokenCachePersistenceOptions the token cache configuration options * @return An updated instance of this builder with the token cache options configured. */ public SharedTokenCacheCredentialBuilder tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) { this.tokenCachePersistenceOptions = tokenCachePersistenceOptions; return this; } /** * Sets the {@link AuthenticationRecord} captured from a previous authentication. * * @param authenticationRecord the authentication record to be configured. * * @return An updated instance of this builder with the configured authentication record. */ public SharedTokenCacheCredentialBuilder authenticationRecord(AuthenticationRecord authenticationRecord) { this.identityClientOptions.setAuthenticationRecord(authenticationRecord); return this; } /** * Creates a new {@link SharedTokenCacheCredentialBuilder} with the current configurations. * * @return a {@link SharedTokenCacheCredentialBuilder} with the current configurations. */ public SharedTokenCacheCredential build() { identityClientOptions.setTokenCacheOptions(tokenCachePersistenceOptions); return new SharedTokenCacheCredential(username, clientId, tenantId, identityClientOptions.enablePersistentCache().setAllowUnencryptedCache(true)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy