AuthorizationServerEndpoints.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.spring.aad.webapp;
import com.nimbusds.oauth2.sdk.util.StringUtils;
/**
* Used to get endpoints for Microsoft Identity authorization server.
*/
public class AuthorizationServerEndpoints {
private static final String IDENTITY_PLATFORM = "https://login.microsoftonline.com/";
private static final String AUTHORIZATION_ENDPOINT = "/oauth2/v2.0/authorize";
private static final String TOKEN_ENDPOINT = "/oauth2/v2.0/token";
private static final String JWK_SET_ENDPOINT = "/discovery/v2.0/keys";
private static final String END_SESSION_ENDPOINT = "/oauth2/v2.0/logout";
private final String baseUri;
public AuthorizationServerEndpoints() {
this(IDENTITY_PLATFORM);
}
public AuthorizationServerEndpoints(String baseUri) {
if (StringUtils.isBlank(baseUri)) {
baseUri = IDENTITY_PLATFORM;
}
this.baseUri = addSlash(baseUri);
}
private String addSlash(String uri) {
return uri.endsWith("/") ? uri : uri + "/";
}
public String authorizationEndpoint(String tenant) {
return baseUri + tenant + AUTHORIZATION_ENDPOINT;
}
public String tokenEndpoint(String tenant) {
return baseUri + tenant + TOKEN_ENDPOINT;
}
public String jwkSetEndpoint(String tenant) {
return baseUri + tenant + JWK_SET_ENDPOINT;
}
public String endSessionEndpoint(String tenant) {
return baseUri + tenant + END_SESSION_ENDPOINT;
}
}