Add support for custom callbackUrls to providers

Signed-off-by: Marcus Eide <eide@spotify.com>
This commit is contained in:
Marcus Eide
2022-02-02 13:32:57 +01:00
parent 9888ccb678
commit ea30d0fd75
10 changed files with 50 additions and 10 deletions
@@ -205,7 +205,10 @@ export const createAtlassianProvider = (
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const scopes = envConfig.getString('scopes');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const catalogIdentityClient = new CatalogIdentityClient({
catalogApi,
@@ -231,6 +234,7 @@ export const createAtlassianProvider = (
disableRefresh: true,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -228,7 +228,10 @@ export const createAuth0Provider = (
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const domain = envConfig.getString('domain');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const catalogIdentityClient = new CatalogIdentityClient({
catalogApi,
@@ -259,6 +262,7 @@ export const createAuth0Provider = (
disableRefresh: true,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -280,7 +280,10 @@ export const createBitbucketProvider = (
OAuthEnvironmentHandler.mapConfig(config, envConfig => {
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const catalogIdentityClient = new CatalogIdentityClient({
catalogApi,
@@ -309,6 +312,7 @@ export const createBitbucketProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -236,7 +236,10 @@ export const createGitlabProvider = (
const clientSecret = envConfig.getString('clientSecret');
const audience = envConfig.getOptionalString('audience');
const baseUrl = audience || 'https://gitlab.com';
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const catalogIdentityClient = new CatalogIdentityClient({
catalogApi,
@@ -272,6 +275,7 @@ export const createGitlabProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -266,7 +266,10 @@ export const createGoogleProvider = (
OAuthEnvironmentHandler.mapConfig(config, envConfig => {
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const catalogIdentityClient = new CatalogIdentityClient({
catalogApi,
@@ -304,6 +307,7 @@ export const createGoogleProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -276,7 +276,10 @@ export const createMicrosoftProvider = (
const clientSecret = envConfig.getString('clientSecret');
const tenantId = envConfig.getString('tenantId');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const authorizationUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/authorize`;
const tokenUrl = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`;
@@ -318,6 +321,7 @@ export const createMicrosoftProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -240,7 +240,10 @@ export const createOAuth2Provider = (
OAuthEnvironmentHandler.mapConfig(config, envConfig => {
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const authorizationUrl = envConfig.getString('authorizationUrl');
const tokenUrl = envConfig.getString('tokenUrl');
const scope = envConfig.getOptionalString('scope');
@@ -288,6 +291,7 @@ export const createOAuth2Provider = (
disableRefresh,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -264,7 +264,10 @@ export const createOidcProvider = (
OAuthEnvironmentHandler.mapConfig(config, envConfig => {
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const metadataUrl = envConfig.getString('metadataUrl');
const tokenSignedResponseAlg = envConfig.getOptionalString(
'tokenSignedResponseAlg',
@@ -313,6 +316,7 @@ export const createOidcProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -276,7 +276,10 @@ export const createOktaProvider = (
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const audience = envConfig.getString('audience');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
// This is a safe assumption as `passport-okta-oauth` uses the audience
// as the base for building the authorization, token, and user info URLs.
@@ -322,6 +325,7 @@ export const createOktaProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};
@@ -227,7 +227,10 @@ export const createOneLoginProvider = (
const clientId = envConfig.getString('clientId');
const clientSecret = envConfig.getString('clientSecret');
const issuer = envConfig.getString('issuer');
const callbackUrl = `${globalConfig.baseUrl}/${providerId}/handler/frame`;
const customCallbackUrl = envConfig.getOptionalString('callbackUrl');
const callbackUrl =
customCallbackUrl ||
`${globalConfig.baseUrl}/${providerId}/handler/frame`;
const catalogIdentityClient = new CatalogIdentityClient({
catalogApi,
@@ -258,6 +261,7 @@ export const createOneLoginProvider = (
disableRefresh: false,
providerId,
tokenIssuer,
callbackUrl,
});
});
};