🐛 Handle infinite loop from oidc (#282)
This commit is contained in:
@@ -194,7 +194,7 @@ class Login extends Observable {
|
|||||||
}
|
}
|
||||||
await this.updateUser();
|
await this.updateUser();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.logger.error('Can not login', err);
|
throw Error('Can not login');
|
||||||
} finally {
|
} finally {
|
||||||
this.logger.debug('Login process finished');
|
this.logger.debug('Login process finished');
|
||||||
Login.logInOngoing = false;
|
Login.logInOngoing = false;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { AuthProvider, InitParameters } from '../auth-provider';
|
|||||||
import jwtStorageService, { JWTDataType } from '@features/auth/jwt-storage-service';
|
import jwtStorageService, { JWTDataType } from '@features/auth/jwt-storage-service';
|
||||||
import LocalStorage from '@features/global/framework/local-storage-service';
|
import LocalStorage from '@features/global/framework/local-storage-service';
|
||||||
import ConsoleApiClient from '@features/console/api/console-api-client';
|
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_CALLBACK_URL = '/oidccallback';
|
||||||
const OIDC_SIGNOUT_URL = '/signout';
|
const OIDC_SIGNOUT_URL = '/signout';
|
||||||
@@ -70,15 +70,15 @@ export default class OIDCAuthProviderService
|
|||||||
this.signOut();
|
this.signOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.userManager.events.addUserSessionChanged((... args) => {
|
this.userManager.events.addUserSessionChanged((...args) => {
|
||||||
this.logger.debug('User Session changed:', 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.logger.debug('Silent Renew Error:', args);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.userManager.events.addUserUnloaded((... args) => {
|
this.userManager.events.addUserUnloaded((...args) => {
|
||||||
this.logger.debug('User unloaded:', args);
|
this.logger.debug('User unloaded:', args);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ export default class OIDCAuthProviderService
|
|||||||
await this.signIn();
|
await this.signIn();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
this.logger.info("Init completed")
|
this.logger.info('Init completed');
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,14 +119,14 @@ export default class OIDCAuthProviderService
|
|||||||
this.onInitialized();
|
this.onInitialized();
|
||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
}
|
}
|
||||||
this.logger.info("Setting new access token");
|
this.logger.info('Setting new access token');
|
||||||
await this.params?.onNewToken(jwt);
|
await this.params?.onNewToken(jwt);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.logger.error(
|
this.logger.error(
|
||||||
'OIDC user loaded listener, error while getting the JWT from OIDC token',
|
'OIDC user loaded listener, error while getting the JWT from OIDC token',
|
||||||
err,
|
err,
|
||||||
);
|
);
|
||||||
await this.signinRedirect();
|
throw Error('Error while getting the JWT from OIDC token');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
await this.signinRedirect();
|
await this.signinRedirect();
|
||||||
@@ -173,11 +173,12 @@ export default class OIDCAuthProviderService
|
|||||||
this.logger.info('getJWTFromOidcToken, user expired');
|
this.logger.info('getJWTFromOidcToken, user expired');
|
||||||
}
|
}
|
||||||
|
|
||||||
const jwt = await ConsoleApiClient.getNewAccessToken(
|
const jwt = await ConsoleApiClient.getNewAccessToken({
|
||||||
{ id_token: user.id_token, access_token: user.access_token },
|
id_token: user.id_token,
|
||||||
);
|
access_token: user.access_token,
|
||||||
|
});
|
||||||
|
|
||||||
JwtStorageService.updateJWT(jwt)
|
JwtStorageService.updateJWT(jwt);
|
||||||
|
|
||||||
return jwt;
|
return jwt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,9 +76,19 @@ class InitService extends Observable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getServer() {
|
async getServer() {
|
||||||
return await Api.get<ServerInfoType>('/internal/services/general/v1/server', undefined, false, {
|
try {
|
||||||
disableJWTAuthentication: true,
|
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() {
|
async init() {
|
||||||
|
|||||||
Reference in New Issue
Block a user