Merge pull request #23270 from gusevda/increase-oidc-authenticator-request-timeout

Increase HTTP request timeout used by OIDC authenticator
This commit is contained in:
Patrik Oldsberg
2024-03-11 12:07:52 +01:00
committed by GitHub
2 changed files with 20 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-auth-backend-module-oidc-provider': patch
---
Increased HTTP request timeout used by OIDC authenticator.
@@ -15,6 +15,8 @@
*/
import {
custom,
CustomHttpOptionsProvider,
Issuer,
ClientAuthMethod,
TokenSet,
@@ -30,6 +32,14 @@ import {
PassportOAuthPrivateInfo,
} from '@backstage/plugin-auth-node';
const HTTP_OPTION_TIMEOUT = 10000;
const httpOptionsProvider: CustomHttpOptionsProvider = (_url, options) => {
return {
...options,
timeout: HTTP_OPTION_TIMEOUT,
};
};
/**
* authentication result for the OIDC which includes the token set and user
* profile response
@@ -66,7 +76,11 @@ export const oidcAuthenticator = createOAuthAuthenticator({
const initializedScope = config.getOptionalString('scope');
const initializedPrompt = config.getOptionalString('prompt');
Issuer[custom.http_options] = httpOptionsProvider;
const promise = Issuer.discover(metadataUrl).then(issuer => {
issuer[custom.http_options] = httpOptionsProvider;
issuer.Client[custom.http_options] = httpOptionsProvider;
const client = new issuer.Client({
access_type: 'offline', // this option must be passed to provider to receive a refresh token
client_id: clientId,
@@ -78,6 +92,7 @@ export const oidcAuthenticator = createOAuthAuthenticator({
id_token_signed_response_alg: tokenSignedResponseAlg || 'RS256',
scope: initializedScope || '',
});
client[custom.http_options] = httpOptionsProvider;
const strategy = new OidcStrategy(
{