Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See License.txt in the project root for license information.
/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */
package com.microsoft.azure.credentials; import com.fasterxml.jackson.annotation.JsonProperty; import com.microsoft.aad.adal4j.AuthenticationResult; import com.microsoft.azure.management.apigeneration.Beta; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import java.util.Date;
An instance of this class represents an entry in accessTokens.json.
/** * An instance of this class represents an entry in accessTokens.json. */
@Beta final class AzureCliToken implements Cloneable { @JsonProperty("_authority") private String authority; @JsonProperty("_clientId") private String clientId; private String tokenType; private long expiresIn; private String expiresOn; private Date expiresOnDate; private String oid; private String userId; private String servicePrincipalId; private String servicePrincipalTenant; private boolean isMRRT; private String resource; private String accessToken; private String refreshToken; private String identityProvider; boolean isServicePrincipal() { return servicePrincipalId != null; } String tenant() { if (isServicePrincipal()) { return servicePrincipalTenant; } else { String[] parts = authority.split("/"); return parts[parts.length - 1]; } } String clientId() { if (isServicePrincipal()) { return servicePrincipalId; } else { return clientId; } } String authority() { return authority; } boolean expired() { return expiresOn != null && expiresOn().before(new Date()); } String accessToken() { return accessToken; } Date expiresOn() { if (expiresOnDate == null) { try { expiresOnDate = DateTime.parse(expiresOn, DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS")).toDate(); } catch (IllegalArgumentException e) { expiresOnDate = DateTime.parse(expiresOn).toDate(); } } return expiresOnDate; } AzureCliToken withAuthenticationResult(AuthenticationResult result) { this.accessToken = result.getAccessToken(); this.refreshToken = result.getRefreshToken(); this.expiresIn = result.getExpiresAfter(); this.expiresOnDate = result.getExpiresOnDate(); return this; } AzureCliToken withAccessToken(String accessToken) { this.accessToken = accessToken; return this; } String refreshToken() { return refreshToken; } AzureCliToken withRefreshToken(String refreshToken) { this.refreshToken = refreshToken; return this; } String user() { if (isServicePrincipal()) { return servicePrincipalId; } else { return userId; } } boolean isMRRT() { return isMRRT; } String resource() { return resource; } AzureCliToken withResource(String resource) { this.resource = resource; return this; } public AzureCliToken clone() throws CloneNotSupportedException { AzureCliToken token = (AzureCliToken) super.clone(); token.expiresOnDate = (Date) expiresOn().clone(); return token; } }