🐛 Handle infinite loop from oidc (#282)

This commit is contained in:
Montassar Ghanmy
2023-12-04 16:28:35 +01:00
committed by GitHub
parent 9ba9894247
commit 629ff565ee
3 changed files with 26 additions and 15 deletions
@@ -194,7 +194,7 @@ class Login extends Observable {
}
await this.updateUser();
} catch (err) {
this.logger.error('Can not login', err);
throw Error('Can not login');
} finally {
this.logger.debug('Login process finished');
Login.logInOngoing = false;
@@ -11,7 +11,7 @@ import { AuthProvider, InitParameters } from '../auth-provider';
import jwtStorageService, { JWTDataType } from '@features/auth/jwt-storage-service';
import LocalStorage from '@features/global/framework/local-storage-service';
import ConsoleApiClient from '@features/console/api/console-api-client';
import JwtStorageService from "@features/auth/jwt-storage-service";
import JwtStorageService from '@features/auth/jwt-storage-service';
const OIDC_CALLBACK_URL = '/oidccallback';
const OIDC_SIGNOUT_URL = '/signout';
@@ -70,15 +70,15 @@ export default class OIDCAuthProviderService
this.signOut();
}
this.userManager.events.addUserSessionChanged((... args) => {
this.userManager.events.addUserSessionChanged((...args) => {
this.logger.debug('User Session changed', args);
});
this.userManager.events.addSilentRenewError((... args) => {
this.userManager.events.addSilentRenewError((...args) => {
this.logger.debug('Silent Renew Error', args);
});
this.userManager.events.addUserUnloaded((... args) => {
this.userManager.events.addUserUnloaded((...args) => {
this.logger.debug('User unloaded', args);
});
@@ -97,7 +97,7 @@ export default class OIDCAuthProviderService
await this.signIn();
});
}
this.logger.info("Init completed")
this.logger.info('Init completed');
return this;
}
@@ -119,14 +119,14 @@ export default class OIDCAuthProviderService
this.onInitialized();
this.initialized = true;
}
this.logger.info("Setting new access token");
this.logger.info('Setting new access token');
await this.params?.onNewToken(jwt);
} catch (err) {
this.logger.error(
'OIDC user loaded listener, error while getting the JWT from OIDC token',
err,
);
await this.signinRedirect();
throw Error('Error while getting the JWT from OIDC token');
}
} else {
await this.signinRedirect();
@@ -173,11 +173,12 @@ export default class OIDCAuthProviderService
this.logger.info('getJWTFromOidcToken, user expired');
}
const jwt = await ConsoleApiClient.getNewAccessToken(
{ id_token: user.id_token, access_token: user.access_token },
);
const jwt = await ConsoleApiClient.getNewAccessToken({
id_token: user.id_token,
access_token: user.access_token,
});
JwtStorageService.updateJWT(jwt)
JwtStorageService.updateJWT(jwt);
return jwt;
}
@@ -76,9 +76,19 @@ class InitService extends Observable {
}
async getServer() {
return await Api.get<ServerInfoType>('/internal/services/general/v1/server', undefined, false, {
disableJWTAuthentication: true,
});
try {
return await Api.get<ServerInfoType>(
'/internal/services/general/v1/server',
undefined,
false,
{
disableJWTAuthentication: true,
},
);
} catch (e) {
this.logger.error('Error while getting server infos', e);
throw e;
}
}
async init() {