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

com.atlassian.connect.spring.internal.AtlassianConnectPerTenantEnvironmentConfiguration Maven / Gradle / Ivy

package com.atlassian.connect.spring.internal;

import com.atlassian.connect.spring.AtlassianHost;
import org.springframework.stereotype.Component;

import java.net.URI;

@Component
public class AtlassianConnectPerTenantEnvironmentConfiguration {
    private static final URI DEV_AUTHORIZATION_SERVER_URL = URI.create("https://oauth-2-authorization-server.dev.services.atlassian.com");
    private static final URI FEDRAMP_SANDBOX_AUTHORIZATION_SERVER_URL = URI.create("https://oauth-2-authorization-server.ap-southeast-1.staging.atl-paas.net");
    private static final URI PRODUCTION_AUTHORIZATION_SERVER_URL = URI.create("https://oauth-2-authorization-server.services.atlassian.com");
    public static final String PUBLIC_KEY_BASE_URL_STAGING = "https://cs-migrations--cdn.us-west-1.staging.public.atl-paas.net";
    public static final String PUBLIC_KEY_BASE_URL_FEDRAMP_SANDBOX = "https://cs-migrations--cdn.ap-southeast-1.staging.public.atl-paas.net";
    public static final String PUBLIC_KEY_BASE_URL_PRODUCTION = "https://connect-install-keys.atlassian.com";

    private final AtlassianConnectProperties properties;

    public AtlassianConnectPerTenantEnvironmentConfiguration(AtlassianConnectProperties properties) {
        this.properties = properties;
    }

    public URI getAuthorizationServerBaseUrl(AtlassianHost host) {
        String baseUrlHost = URI.create(host.getBaseUrl()).getHost();
        if (isDevHost(baseUrlHost)) {
            return DEV_AUTHORIZATION_SERVER_URL;
        }
        if (isFedRAMPSandboxHost(baseUrlHost)) {
            return FEDRAMP_SANDBOX_AUTHORIZATION_SERVER_URL;
        }
        return PRODUCTION_AUTHORIZATION_SERVER_URL;
    }

    public String getPublicKeyBaseUrl(String url) {
        String hostUrl = URI.create(url).getHost();
        String publicKeyBaseUrlFromProperties = properties.getPublicKeyBaseUrl();

        if (publicKeyBaseUrlFromProperties != null) {
            return publicKeyBaseUrlFromProperties;
        }
        if (isDevHost(hostUrl)) {
            return PUBLIC_KEY_BASE_URL_STAGING;
        }
        if (isFedRAMPSandboxHost(hostUrl)) {
            return PUBLIC_KEY_BASE_URL_FEDRAMP_SANDBOX;
        }
        return PUBLIC_KEY_BASE_URL_PRODUCTION;
    }

    private boolean isDevHost(String host) {
        return host.endsWith(".jira-dev.com");
    }

    private boolean isFedRAMPSandboxHost(String host) {
        return host.endsWith(".atlassian-fex.net");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy