UNPKG

@universis/common

Version:

Universis - common directives and services

82 lines (81 loc) 11.1 kB
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=