[ADF-2795] SSO implicitflow (#3332)

* Enable OAUTH2

* Create SSO services

* SSO improvements

* Rollback sso login change

* Add SSO configuration from Setting component

* Refactoring

* Remove login ECM/BPM toggle and move use the userpreference instead of store

* fix host setting unit test

* Fix unit test missing instance

* use the Js api oauth

* add logout component and clean sso not used class

* fix dependencies cicle

* add translation settings

* fix style setting page

* clean

* JS APi should receive the oauth config from the userPreference and not from the config file

* change login if SSO is present

* missing spaces

* add sso test in login component

* add logout directive new properties test

* Improve host setting and remove library reference

* fix login test

* Remove unused code

* Fix authentication unit test

* fix authguard unit test

* fix csrf check login component

* fix unit test core and demo shell

* remove
This commit is contained in:
Maurizio Vitale
2018-06-07 23:19:58 +01:00
committed by Eugenio Romano
parent 3a6c12e624
commit f8e92b2fb0
57 changed files with 1295 additions and 681 deletions

View File

@@ -25,6 +25,7 @@ import * as alfrescoApi from 'alfresco-js-api';
import { AppConfigService } from '../app-config/app-config.service';
import { StorageService } from './storage.service';
import { Subject } from 'rxjs/Subject';
import { UserPreferencesService } from './user-preferences.service';
/* tslint:disable:adf-file-name */
@@ -95,6 +96,7 @@ export class AlfrescoApiService {
}
constructor(protected appConfig: AppConfigService,
protected userPreference: UserPreferencesService,
protected storage: StorageService) {
}
@@ -105,23 +107,32 @@ export class AlfrescoApiService {
}
async reset() {
if (this.alfrescoApi) {
this.alfrescoApi = null;
}
this.initAlfrescoApi();
}
protected initAlfrescoApi() {
this.alfrescoApi = <AlfrescoApi> new alfrescoApi({
provider: this.storage.getItem('AUTH_TYPE'),
let oauth: any = Object.assign({}, this.userPreference.oauthConfig);
if (oauth) {
oauth.redirectUri = window.location.origin + (oauth.redirectUri || '/');
oauth.redirectUriLogout = window.location.origin + (oauth.redirectUriLogout || '/');
}
const config = {
provider: this.userPreference.providers,
ticketEcm: this.storage.getItem('ticket-ECM'),
ticketBpm: this.storage.getItem('ticket-BPM'),
hostEcm: this.appConfig.get<string>('ecmHost'),
hostBpm: this.appConfig.get<string>('bpmHost'),
hostEcm: this.userPreference.ecmHost,
hostBpm: this.userPreference.bpmHost,
contextRootBpm: this.appConfig.get<string>('contextRootBpm'),
contextRoot: this.appConfig.get<string>('contextRootEcm'),
disableCsrf: this.storage.getItem('DISABLE_CSRF') === 'true',
oauth2: this.appConfig.get<any>('oauth2')
});
oauth2: oauth
};
if (this.alfrescoApi) {
this.alfrescoApi.configureJsApi(config);
} else {
this.alfrescoApi = <AlfrescoApi> new alfrescoApi(config);
}
}
}