mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
Merge pull request #5338 from Alfresco/dev-eromano-ADF-4980
[ADF-4980] Fix app prefix
This commit is contained in:
commit
50f8e58314
@ -61,6 +61,11 @@ In order to achieve this, you will only need to set your app identifier under th
|
||||
**Important note**
|
||||
This identifier must be unique to the app to guarantee that it has its own storage.
|
||||
|
||||
### SSO storagePrefix related scenario
|
||||
The storagePrefix can allow you to login with multiple user in the same browser only if:
|
||||
- Or You don't use the implicit flow
|
||||
- Or You use implicit flow you use different AIMS instances for any app
|
||||
|
||||
## See also
|
||||
|
||||
- [Cookie service](cookie.service.md)
|
||||
|
@ -208,7 +208,7 @@ describe('Login component', () => {
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await browser.executeScript('window.localStorage.removeItem("ticket-ECM");');
|
||||
await browser.executeScript('window.localStorage.removeItem("ADF_ticket-ECM");');
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
|
||||
await loginPage.waitForElements();
|
||||
});
|
||||
@ -228,7 +228,7 @@ describe('Login component', () => {
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await browser.executeScript('window.localStorage.removeItem("ticket-BPM");');
|
||||
await browser.executeScript('window.localStorage.removeItem("ADF_ticket-BPM");');
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
|
||||
await loginPage.waitForElements();
|
||||
});
|
||||
|
@ -134,6 +134,7 @@ export class AlfrescoApiService {
|
||||
contextRoot: this.appConfig.get<string>(AppConfigValues.CONTEXTROOTECM),
|
||||
disableCsrf: this.appConfig.get<boolean>(AppConfigValues.DISABLECSRF),
|
||||
withCredentials: this.appConfig.get<boolean>(AppConfigValues.AUTH_WITH_CREDENTIALS, false),
|
||||
domainPrefix : this.appConfig.get<string>(AppConfigValues.STORAGE_PREFIX),
|
||||
oauth2: oauth
|
||||
});
|
||||
|
||||
|
@ -41,15 +41,15 @@ export class AuthGuard extends AuthGuardBase {
|
||||
}
|
||||
|
||||
ticketChange(event: StorageEvent) {
|
||||
if (event.key === 'ticket-ECM' && event.newValue !== event.oldValue) {
|
||||
if (event.key.includes('ticket-ECM') && event.newValue !== event.oldValue) {
|
||||
this.ticketChangeRedirect(event, 'ECM');
|
||||
}
|
||||
|
||||
if (event.key === 'ticket-BPM' && event.newValue !== event.oldValue) {
|
||||
if (event.key.includes('ticket-BPM') && event.newValue !== event.oldValue) {
|
||||
this.ticketChangeRedirect(event, 'BPM');
|
||||
}
|
||||
|
||||
if (event.key === JwtHelperService.USER_ACCESS_TOKEN &&
|
||||
if (event.key.includes(JwtHelperService.USER_ACCESS_TOKEN) &&
|
||||
this.jwtHelperService.getValueFromToken(event.newValue, JwtHelperService.USER_PREFERRED_USERNAME) !==
|
||||
this.jwtHelperService.getValueFromToken(event.oldValue, JwtHelperService.USER_PREFERRED_USERNAME)) {
|
||||
this.ticketChangeRedirect(event, 'ALL');
|
||||
|
@ -26,6 +26,7 @@ import { UserRepresentation } from '@alfresco/js-api';
|
||||
import { map, catchError, tap } from 'rxjs/operators';
|
||||
import { HttpHeaders } from '@angular/common/http';
|
||||
import { JwtHelperService } from './jwt-helper.service';
|
||||
import { StorageService } from './storage.service';
|
||||
|
||||
const REMEMBER_ME_COOKIE_KEY = 'ALFRESCO_REMEMBER_ME';
|
||||
const REMEMBER_ME_UNTIL = 1000 * 60 * 60 * 24 * 30;
|
||||
@ -43,6 +44,7 @@ export class AuthenticationService {
|
||||
|
||||
constructor(
|
||||
private appConfig: AppConfigService,
|
||||
private storageService: StorageService,
|
||||
private alfrescoApi: AlfrescoApiService,
|
||||
private cookie: CookieService,
|
||||
private logService: LogService) {
|
||||
@ -292,7 +294,7 @@ export class AuthenticationService {
|
||||
* @returns Auth token string
|
||||
*/
|
||||
getToken(): string {
|
||||
return localStorage.getItem(JwtHelperService.USER_ACCESS_TOKEN);
|
||||
return this.storageService.getItem(JwtHelperService.USER_ACCESS_TOKEN);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { StorageService } from './storage.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
@ -31,7 +32,7 @@ export class JwtHelperService {
|
||||
static RESOURCE_ACCESS = 'resource_access';
|
||||
static USER_PREFERRED_USERNAME = 'preferred_username';
|
||||
|
||||
constructor() {
|
||||
constructor(private storageService: StorageService) {
|
||||
}
|
||||
|
||||
/**
|
||||
@ -89,12 +90,12 @@ export class JwtHelperService {
|
||||
* @returns access token
|
||||
*/
|
||||
getAccessToken(): string {
|
||||
return localStorage.getItem(JwtHelperService.USER_ACCESS_TOKEN);
|
||||
return this.storageService.getItem(JwtHelperService.USER_ACCESS_TOKEN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a named value from the user access token.
|
||||
* @param key accessToken
|
||||
* @param accessToken your SSO access token where the value is encode
|
||||
* @param key Key name of the field to retrieve
|
||||
* @returns Value from the token
|
||||
*/
|
||||
|
@ -27,8 +27,8 @@ describe('NoTaskDetailsTemplateDirective', () => {
|
||||
let authService: AuthenticationService;
|
||||
|
||||
beforeEach(() => {
|
||||
authService = new AuthenticationService(null, null, null, null);
|
||||
spyOn(authService, 'getBpmLoggedUser').and.returnValue(of({ email: 'fake-email'}));
|
||||
authService = new AuthenticationService(null, null, null, null, null);
|
||||
spyOn(authService, 'getBpmLoggedUser').and.returnValue(of({ email: 'fake-email' }));
|
||||
detailsComponent = new TaskDetailsComponent(null, authService, null, null, null, null);
|
||||
component = new NoTaskDetailsTemplateDirective(detailsComponent);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user