@universis/common
Version:
Universis - common directives and services
82 lines (81 loc) • 11.1 kB
JavaScript
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { AuthenticationService } from './services/authentication.service';
import { UserService } from './services/user.service';
import { LoginComponent } from './components/login/login.component';
import { LogoutComponent } from './components/logout/logout.component';
import { APP_LOCATIONS, DEFAULT_APP_LOCATIONS, AuthGuard } from './guards/auth.guard';
import { AuthRoutingModule } from './auth.routing';
import { AuthCallbackComponent } from './auth-callback.component';
import { TranslateModule } from '@ngx-translate/core';
import { AngularDataContext, MostModule } from '@themost/angular';
import { ActivatedUser } from './services/activated-user.service';
import { PkceAuthenticationService } from './services/pkce-authentication.service';
import { ConfigurationService } from '../shared/services/configuration.service';
import { ActivatedRoute } from '@angular/router';
import { RefreshTokenComponent } from './components/refresh/refresh-token.component';
export function AuthenticationServiceFactory(http, configuration, context, activatedRoute, activatedUser) {
const authSettings = configuration.settings.auth;
if (Object.prototype.hasOwnProperty.call(authSettings, 'use')) {
if (authSettings.use === 'PkceAuthenticationService') {
// use PkceAuthenticationService
return new PkceAuthenticationService(http, configuration, context, activatedRoute, activatedUser);
}
// show warning for unsupported service
console.log('WARN', 'The specified authentication service is not yet implemented.');
}
// use fallback which is of course an instance of SignerService
return new AuthenticationService(configuration, context, activatedRoute, activatedUser);
}
export class AuthModule {
static forRoot(locations) {
return {
ngModule: AuthModule,
providers: [
AuthGuard,
{
provide: AuthenticationService,
useFactory: AuthenticationServiceFactory,
deps: [
HttpClient,
ConfigurationService,
AngularDataContext,
ActivatedRoute,
ActivatedUser,
],
},
UserService,
ActivatedUser,
{
provide: APP_LOCATIONS,
useValue: locations || DEFAULT_APP_LOCATIONS
}
]
};
}
}
AuthModule.decorators = [
{ type: NgModule, args: [{
imports: [
HttpClientModule,
CommonModule,
FormsModule,
TranslateModule,
MostModule,
AuthRoutingModule
],
declarations: [
LoginComponent,
LogoutComponent,
AuthCallbackComponent,
RefreshTokenComponent
],
exports: [
RefreshTokenComponent
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
},] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL2NvbW1vbi8iLCJzb3VyY2VzIjpbImF1dGgvYXV0aC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFHckYsTUFBTSx1Q0FDRixJQUFnQixFQUNoQixhQUFtQyxFQUNuQyxPQUEyQixFQUMzQixjQUE4QixFQUM5QixhQUE0QjtJQUM1QixNQUFNLFlBQVksR0FBcUIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbkUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQzNELElBQUksWUFBWSxDQUFDLEdBQUcsS0FBSywyQkFBMkIsRUFBRTtZQUNsRCxnQ0FBZ0M7WUFDaEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLElBQUksRUFBRSxhQUFhLEVBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDL0M7UUFDRCx1Q0FBdUM7UUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsOERBQThELENBQUMsQ0FBQztLQUN2RjtJQUNELCtEQUErRDtJQUMvRCxPQUFPLElBQUkscUJBQXFCLENBQUMsYUFBYSxFQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFzQkQsTUFBTTtJQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBcUM7UUFDaEQsT0FBTztZQUNILFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFNBQVMsRUFBRTtnQkFDUCxTQUFTO2dCQUNUO29CQUNJLE9BQU8sRUFBRSxxQkFBcUI7b0JBQzlCLFVBQVUsRUFBRSw0QkFBNEI7b0JBQ3hDLElBQUksRUFBRTt3QkFDRixVQUFVO3dCQUNWLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGFBQWE7cUJBQ2hCO2lCQUNKO2dCQUNELFdBQVc7Z0JBQ1gsYUFBYTtnQkFDYjtvQkFDSSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsUUFBUSxFQUFFLFNBQVMsSUFBSSxxQkFBcUI7aUJBQy9DO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs7O1lBOUNKLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsZUFBZTtvQkFDZixVQUFVO29CQUNWLGlCQUFpQjtpQkFDcEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixxQkFBcUI7b0JBQ3JCLHFCQUFxQjtpQkFDeEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLHFCQUFxQjtpQkFDeEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9nb3V0L2xvZ291dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVBQX0xPQ0FUSU9OUywgREVGQVVMVF9BUFBfTE9DQVRJT05TLCBBdXRoR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9hdXRoLmd1YXJkJztcbmltcG9ydCB7IEF1dGhSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9hdXRoLnJvdXRpbmcnO1xuaW1wb3J0IHsgQXV0aENhbGxiYWNrQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRoLWNhbGxiYWNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJEYXRhQ29udGV4dCwgTW9zdE1vZHVsZSB9IGZyb20gJ0B0aGVtb3N0L2FuZ3VsYXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkVXNlciB9IGZyb20gJy4vc2VydmljZXMvYWN0aXZhdGVkLXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQa2NlQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wa2NlLWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJlZnJlc2hUb2tlbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZWZyZXNoL3JlZnJlc2gtdG9rZW4uY29tcG9uZW50JztcbmltcG9ydCB7IExvY2F0aW9uUGVybWlzc2lvbiB9IGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQuaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBBdXRoZW50aWNhdGlvblNlcnZpY2VGYWN0b3J5KFxuICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBhY3RpdmF0ZWRVc2VyOiBBY3RpdmF0ZWRVc2VyKSB7XG4gICAgY29uc3QgYXV0aFNldHRpbmdzOiB7IHVzZT86IHN0cmluZyB9ID0gY29uZmlndXJhdGlvbi5zZXR0aW5ncy5hdXRoO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXV0aFNldHRpbmdzLCAndXNlJykpIHtcbiAgICAgICAgaWYgKGF1dGhTZXR0aW5ncy51c2UgPT09ICdQa2NlQXV0aGVudGljYXRpb25TZXJ2aWNlJykge1xuICAgICAgICAgICAgLy8gdXNlIFBrY2VBdXRoZW50aWNhdGlvblNlcnZpY2VcbiAgICAgICAgICAgIHJldHVybiBuZXcgUGtjZUF1dGhlbnRpY2F0aW9uU2VydmljZShodHRwLCBjb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsIGFjdGl2YXRlZFJvdXRlLCBhY3RpdmF0ZWRVc2VyKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzaG93IHdhcm5pbmcgZm9yIHVuc3VwcG9ydGVkIHNlcnZpY2VcbiAgICAgICAgY29uc29sZS5sb2coJ1dBUk4nLCAnVGhlIHNwZWNpZmllZCBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuJyk7XG4gICAgfVxuICAgIC8vIHVzZSBmYWxsYmFjayB3aGljaCBpcyBvZiBjb3Vyc2UgYW4gaW5zdGFuY2Ugb2YgU2lnbmVyU2VydmljZVxuICAgIHJldHVybiBuZXcgQXV0aGVudGljYXRpb25TZXJ2aWNlKGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGNvbnRleHQsIGFjdGl2YXRlZFJvdXRlLCBhY3RpdmF0ZWRVc2VyKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTW9zdE1vZHVsZSxcbiAgICAgICAgQXV0aFJvdXRpbmdNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBMb2dpbkNvbXBvbmVudCxcbiAgICAgICAgTG9nb3V0Q29tcG9uZW50LFxuICAgICAgICBBdXRoQ2FsbGJhY2tDb21wb25lbnQsXG4gICAgICAgIFJlZnJlc2hUb2tlbkNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBSZWZyZXNoVG9rZW5Db21wb25lbnRcbiAgICBdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KGxvY2F0aW9ucz86IEFycmF5PExvY2F0aW9uUGVybWlzc2lvbj4pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEF1dGhNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBdXRoTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgQXV0aEd1YXJkLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBBdXRoZW50aWNhdGlvblNlcnZpY2VGYWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGl2YXRlZFVzZXIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBBY3RpdmF0ZWRVc2VyLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0xPQ0FUSU9OUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGxvY2F0aW9ucyB8fCBERUZBVUxUX0FQUF9MT0NBVElPTlNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG4iXX0=