@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
114 lines • 13 kB
JavaScript
import { Injectable } from '@angular/core';
import { GrantType, TenantLoginOptionsService, TenantLoginOptionType, UserManagementSource } from '@c8y/client';
import { TemplateType } from './sso-configuration.model';
import { defer, of, throwError } from 'rxjs';
import { catchError, map, publishReplay, refCount, take } from 'rxjs/operators';
import { HttpStatusCode } from '@angular/common/http';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/client";
export class SsoConfigurationService {
constructor(loginOptionsService) {
this.loginOptionsService = loginOptionsService;
this.ssoConfiguration$ = defer(() => this.loginOptionsService.detail(TenantLoginOptionType.OAUTH2)).pipe(map(res => res.data), catchError(({ res }) => {
if (res.status === HttpStatusCode.Forbidden)
return throwError(new Error());
else
return of(this.defaultConfiguration);
}), publishReplay(1, 1000), refCount(), take(1));
this.defaultConfiguration = {
authorizationRequest: {
body: '',
headers: {},
method: 'GET',
operation: 'REDIRECT',
requestParams: {
response_type: 'code',
client_id: '${clientId}',
redirect_uri: '${redirectUri}',
scope: ''
}
},
tokenRequest: {
body: 'grant_type=authorization_code&code=${code}&redirect_uri=${redirectUri}&client_id=${clientId}',
headers: {},
method: 'POST',
operation: 'EXECUTE',
requestParams: {
response_type: 'code',
client_id: '${clientId}',
redirect_uri: '${redirectUri}',
scope: ''
}
},
refreshRequest: {
body: 'grant_type=refresh_token&refresh_token=${refreshToken}&client_id=${clientId}',
headers: {
Authorization: ''
},
method: 'POST',
operation: 'EXECUTE',
requestParams: {
response_type: 'refresh',
client_id: '${clientId}'
}
},
logoutRequest: {
headers: {},
method: 'POST',
operation: 'REDIRECT',
requestParams: {}
},
type: TenantLoginOptionType.OAUTH2,
grantType: GrantType.AUTHORIZATION_CODE,
userManagementSource: UserManagementSource.REMOTE,
onNewUser: {
dynamicMapping: {
mappings: [],
inventoryMappings: [],
configuration: {
mapRolesOnlyForNewUser: false,
manageRolesOnlyFromAccessMapping: false,
mapFromIdToken: false
}
}
},
userIdConfig: {
jwtField: '',
useConstantValue: true
},
signatureVerificationConfig: {
manual: {
certIdFromField: false
}
},
template: TemplateType.CUSTOM,
clientId: '',
audience: '',
issuer: '',
buttonName: '',
redirectToPlatform: '',
providerName: '',
visibleOnLoginPage: true,
accessTokenToUserDataMappings: {},
externalTokenConfig: {
enabled: false
},
useIdToken: false
};
}
getSsoConfiguration$() {
return this.ssoConfiguration$;
}
save(ssoConfiguration) {
return this.loginOptionsService.save(ssoConfiguration);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoConfigurationService, deps: [{ token: i1.TenantLoginOptionsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoConfigurationService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SsoConfigurationService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.TenantLoginOptionsService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NvLWNvbmZpZ3VyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2F1dGgtY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi9zc28tY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFFVCx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNyQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQW9CLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBS3RELE1BQU0sT0FBTyx1QkFBdUI7SUErRmxDLFlBQW9CLG1CQUE4QztRQUE5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTJCO1FBOUYxRCxzQkFBaUIsR0FBbUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUNyRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUM5RCxDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQ3BCLFVBQVUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLFNBQVM7Z0JBQUUsT0FBTyxVQUFVLENBQUMsSUFBSSxL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LHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgR3JhbnRUeXBlLFxuICBJVGVuYW50TG9naW5PcHRpb24sXG4gIFRlbmFudExvZ2luT3B0aW9uc1NlcnZpY2UsXG4gIFRlbmFudExvZ2luT3B0aW9uVHlwZSxcbiAgVXNlck1hbmFnZW1lbnRTb3VyY2Vcbn0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU3NvQ29uZmlndXJhdGlvbiwgVGVtcGxhdGVUeXBlIH0gZnJvbSAnLi9zc28tY29uZmlndXJhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBkZWZlciwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgcHVibGlzaFJlcGxheSwgcmVmQ291bnQsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwU3RhdHVzQ29kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3NvQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHNzb0NvbmZpZ3VyYXRpb24kOiBPYnNlcnZhYmxlPElUZW5hbnRMb2dpbk9wdGlvbj4gPSBkZWZlcigoKSA9PlxuICAgIHRoaXMubG9naW5PcHRpb25zU2VydmljZS5kZXRhaWwoVGVuYW50TG9naW5PcHRpb25UeXBlLk9BVVRIMilcbiAgKS5waXBlKFxuICAgIG1hcChyZXMgPT4gcmVzLmRhdGEpLFxuICAgIGNhdGNoRXJyb3IoKHsgcmVzIH0pID0+IHtcbiAgICAgIGlmIChyZXMuc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Gb3JiaWRkZW4pIHJldHVybiB0aHJvd0Vycm9yKG5ldyBFcnJvcigpKTtcbiAgICAgIGVsc2UgcmV0dXJuIG9mKHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24pO1xuICAgIH0pLFxuICAgIHB1Ymxpc2hSZXBsYXkoMSwgMTAwMCksXG4gICAgcmVmQ291bnQoKSxcbiAgICB0YWtlKDEpXG4gICk7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlndXJhdGlvbjogU3NvQ29uZmlndXJhdGlvbiA9IHtcbiAgICBhdXRob3JpemF0aW9uUmVxdWVzdDoge1xuICAgICAgYm9keTogJycsXG4gICAgICBoZWFkZXJzOiB7fSxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBvcGVyYXRpb246ICdSRURJUkVDVCcsXG4gICAgICByZXF1ZXN0UGFyYW1zOiB7XG4gICAgICAgIHJlc3BvbnNlX3R5cGU6ICdjb2RlJyxcbiAgICAgICAgY2xpZW50X2lkOiAnJHtjbGllbnRJZH0nLFxuICAgICAgICByZWRpcmVjdF91cmk6ICcke3JlZGlyZWN0VXJpfScsXG4gICAgICAgIHNjb3BlOiAnJ1xuICAgICAgfVxuICAgIH0sXG4gICAgdG9rZW5SZXF1ZXN0OiB7XG4gICAgICBib2R5OiAnZ3JhbnRfdHlwZT1hdXRob3JpemF0aW9uX2NvZGUmY29kZT0ke2NvZGV9JnJlZGlyZWN0X3VyaT0ke3JlZGlyZWN0VXJpfSZjbGllbnRfaWQ9JHtjbGllbnRJZH0nLFxuICAgICAgaGVhZGVyczoge30sXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIG9wZXJhdGlvbjogJ0VYRUNVVEUnLFxuICAgICAgcmVxdWVzdFBhcmFtczoge1xuICAgICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXG4gICAgICAgIGNsaWVudF9pZDogJyR7Y2xpZW50SWR9JyxcbiAgICAgICAgcmVkaXJlY3RfdXJpOiAnJHtyZWRpcmVjdFVyaX0nLFxuICAgICAgICBzY29wZTogJydcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlZnJlc2hSZXF1ZXN0OiB7XG4gICAgICBib2R5OiAnZ3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuJnJlZnJlc2hfdG9rZW49JHtyZWZyZXNoVG9rZW59JmNsaWVudF9pZD0ke2NsaWVudElkfScsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246ICcnXG4gICAgICB9LFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBvcGVyYXRpb246ICdFWEVDVVRFJyxcbiAgICAgIHJlcXVlc3RQYXJhbXM6IHtcbiAgICAgICAgcmVzcG9uc2VfdHlwZTogJ3JlZnJlc2gnLFxuICAgICAgICBjbGllbnRfaWQ6ICcke2NsaWVudElkfSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGxvZ291dFJlcXVlc3Q6IHtcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBvcGVyYXRpb246ICdSRURJUkVDVCcsXG4gICAgICByZXF1ZXN0UGFyYW1zOiB7fVxuICAgIH0sXG4gICAgdHlwZTogVGVuYW50TG9naW5PcHRpb25UeXBlLk9BVVRIMixcbiAgICBncmFudFR5cGU6IEdyYW50VHlwZS5BVVRIT1JJWkFUSU9OX0NPREUsXG4gICAgdXNlck1hbmFnZW1lbnRTb3VyY2U6IFVzZXJNYW5hZ2VtZW50U291cmNlLlJFTU9URSxcbiAgICBvbk5ld1VzZXI6IHtcbiAgICAgIGR5bmFtaWNNYXBwaW5nOiB7XG4gICAgICAgIG1hcHBpbmdzOiBbXSxcbiAgICAgICAgaW52ZW50b3J5TWFwcGluZ3M6IFtdLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgbWFwUm9sZXNPbmx5Rm9yTmV3VXNlcjogZmFsc2UsXG4gICAgICAgICAgbWFuYWdlUm9sZXNPbmx5RnJvbUFjY2Vzc01hcHBpbmc6IGZhbHNlLFxuICAgICAgICAgIG1hcEZyb21JZFRva2VuOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VySWRDb25maWc6IHtcbiAgICAgIGp3dEZpZWxkOiAnJyxcbiAgICAgIHVzZUNvbnN0YW50VmFsdWU6IHRydWVcbiAgICB9LFxuICAgIHNpZ25hdHVyZVZlcmlmaWNhdGlvbkNvbmZpZzoge1xuICAgICAgbWFudWFsOiB7XG4gICAgICAgIGNlcnRJZEZyb21GaWVsZDogZmFsc2VcbiAgICAgIH1cbiAgICB9LFxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVR5cGUuQ1VTVE9NLFxuICAgIGNsaWVudElkOiAnJyxcbiAgICBhdWRpZW5jZTogJycsXG4gICAgaXNzdWVyOiAnJyxcbiAgICBidXR0b25OYW1lOiAnJyxcbiAgICByZWRpcmVjdFRvUGxhdGZvcm06ICcnLFxuICAgIHByb3ZpZGVyTmFtZTogJycsXG4gICAgdmlzaWJsZU9uTG9naW5QYWdlOiB0cnVlLFxuICAgIGFjY2Vzc1Rva2VuVG9Vc2VyRGF0YU1hcHBpbmdzOiB7fSxcbiAgICBleHRlcm5hbFRva2VuQ29uZmlnOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZVxuICAgIH0sXG4gICAgdXNlSWRUb2tlbjogZmFsc2VcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ2luT3B0aW9uc1NlcnZpY2U6IFRlbmFudExvZ2luT3B0aW9uc1NlcnZpY2UpIHt9XG5cbiAgZ2V0U3NvQ29uZmlndXJhdGlvbiQoKTogT2JzZXJ2YWJsZTxJVGVuYW50TG9naW5PcHRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5zc29Db25maWd1cmF0aW9uJDtcbiAgfVxuXG4gIHNhdmUoc3NvQ29uZmlndXJhdGlvbjogU3NvQ29uZmlndXJhdGlvbikge1xuICAgIHJldHVybiB0aGlzLmxvZ2luT3B0aW9uc1NlcnZpY2Uuc2F2ZShzc29Db25maWd1cmF0aW9uKTtcbiAgfVxufVxuIl19