Add a way to login to OIDC by clicking login button

add a way to login to OIDC by clicking login button through response status 403

Signed-off-by: Yogi_Wang <yawang@vmware.com>
This commit is contained in:
Yogi_Wang 2019-05-13 18:42:10 +08:00
parent 20deb45a18
commit c8b6b41854

View File

@ -82,18 +82,18 @@ export class SignInComponent implements AfterViewChecked, OnInit {
if (customSkinObj.loginBgImg) { if (customSkinObj.loginBgImg) {
this.customLoginBgImg = customSkinObj.loginBgImg; this.customLoginBgImg = customSkinObj.loginBgImg;
} }
if (customSkinObj.appTitle) { if (customSkinObj.appTitle) {
this.customAppTitle = customSkinObj.appTitle; this.customAppTitle = customSkinObj.appTitle;
} }
} }
// Make sure the updated configuration can be loaded // Make sure the updated configuration can be loaded
this.appConfigService.load() this.appConfigService.load()
.subscribe(updatedConfig => this.appConfig = updatedConfig .subscribe(updatedConfig => this.appConfig = updatedConfig
, error => { , error => {
// Catch the error // Catch the error
console.error("Failed to load bootstrap options with error: ", error); console.error("Failed to load bootstrap options with error: ", error);
}); });
this.route.queryParams this.route.queryParams
.subscribe(params => { .subscribe(params => {
@ -146,7 +146,7 @@ export class SignInComponent implements AfterViewChecked, OnInit {
} }
public get showForgetPwd(): boolean { public get showForgetPwd(): boolean {
return this.appConfig.auth_mode !== 'ldap_auth' && this.appConfig.auth_mode !== 'uaa_auth' return this.appConfig.auth_mode !== 'ldap_auth' && this.appConfig.auth_mode !== 'uaa_auth'
&& this.appConfig.auth_mode !== 'oidc_auth'; && this.appConfig.auth_mode !== 'oidc_auth';
} }
clickRememberMe($event: any): void { clickRememberMe($event: any): void {
if ($event && $event.target) { if ($event && $event.target) {
@ -259,6 +259,16 @@ export class SignInComponent implements AfterViewChecked, OnInit {
this.router.navigateByUrl(this.redirectUrl); this.router.navigateByUrl(this.redirectUrl);
} }
}, error => { }, error => {
// 403 oidc login no body;
if (this.isOidcLoginMode && error && error.status === 403) {
try {
let redirect_location = '';
redirect_location = error._body && error._body.redirect_location ?
error._body.redirect_location : JSON.parse(error._body).redirect_location;
window.location.href = redirect_location;
return;
} catch (error) { }
}
this.handleError(error); this.handleError(error);
}); });
} }