Some checks failed
Build, Lint & Test Lib / Build, Lint and Test Library (push) Has been cancelled
169 lines
7.7 KiB
TypeScript
169 lines
7.7 KiB
TypeScript
import type { Provider } from '@outposts/injection-js';
|
|
import { DataService } from './api/data.service';
|
|
import { HttpBaseService } from './api/http-base.service';
|
|
import {
|
|
PASSED_CONFIG,
|
|
type PassedInitialConfig,
|
|
createStaticLoader,
|
|
} from './auth-config';
|
|
import { AuthStateService } from './auth-state/auth-state.service';
|
|
import { CheckAuthService } from './auth-state/check-auth.service';
|
|
import { AutoLoginService } from './auto-login/auto-login.service';
|
|
import { CallbackService } from './callback/callback.service';
|
|
import { CodeFlowCallbackService } from './callback/code-flow-callback.service';
|
|
import { ImplicitFlowCallbackService } from './callback/implicit-flow-callback.service';
|
|
import { IntervalService } from './callback/interval.service';
|
|
import { PeriodicallyTokenCheckService } from './callback/periodically-token-check.service';
|
|
import { RefreshSessionRefreshTokenService } from './callback/refresh-session-refresh-token.service';
|
|
import { RefreshSessionService } from './callback/refresh-session.service';
|
|
import { AuthWellKnownDataService } from './config/auth-well-known/auth-well-known-data.service';
|
|
import { AuthWellKnownService } from './config/auth-well-known/auth-well-known.service';
|
|
import { ConfigurationService } from './config/config.service';
|
|
import { StsConfigLoader } from './config/loader/config-loader';
|
|
import { ConfigValidationService } from './config/validation/config-validation.service';
|
|
import { DOCUMENT } from './dom';
|
|
import { JwkExtractor } from './extractors/jwk.extractor';
|
|
import type { AuthFeature } from './features';
|
|
import { CodeFlowCallbackHandlerService } from './flows/callback-handling/code-flow-callback-handler.service';
|
|
import { HistoryJwtKeysCallbackHandlerService } from './flows/callback-handling/history-jwt-keys-callback-handler.service';
|
|
import { ImplicitFlowCallbackHandlerService } from './flows/callback-handling/implicit-flow-callback-handler.service';
|
|
import { RefreshSessionCallbackHandlerService } from './flows/callback-handling/refresh-session-callback-handler.service';
|
|
import { RefreshTokenCallbackHandlerService } from './flows/callback-handling/refresh-token-callback-handler.service';
|
|
import { StateValidationCallbackHandlerService } from './flows/callback-handling/state-validation-callback-handler.service';
|
|
import { UserCallbackHandlerService } from './flows/callback-handling/user-callback-handler.service';
|
|
import { FlowsDataService } from './flows/flows-data.service';
|
|
import { FlowsService } from './flows/flows.service';
|
|
import { RandomService } from './flows/random/random.service';
|
|
import { ResetAuthDataService } from './flows/reset-auth-data.service';
|
|
import { SigninKeyDataService } from './flows/signin-key-data.service';
|
|
import { CheckSessionService } from './iframe/check-session.service';
|
|
import { IFrameService } from './iframe/existing-iframe.service';
|
|
import { RefreshSessionIframeService } from './iframe/refresh-session-iframe.service';
|
|
import { SilentRenewService } from './iframe/silent-renew.service';
|
|
import { ClosestMatchingRouteService } from './interceptor/closest-matching-route.service';
|
|
import { AbstractLoggerService } from './logging/abstract-logger.service';
|
|
import { ConsoleLoggerService } from './logging/console-logger.service';
|
|
import { LoggerService } from './logging/logger.service';
|
|
import { LoginService } from './login/login.service';
|
|
import { ParLoginService } from './login/par/par-login.service';
|
|
import { ParService } from './login/par/par.service';
|
|
import { PopUpLoginService } from './login/popup/popup-login.service';
|
|
import { PopUpService } from './login/popup/popup.service';
|
|
import { ResponseTypeValidationService } from './login/response-type-validation/response-type-validation.service';
|
|
import { StandardLoginService } from './login/standard/standard-login.service';
|
|
import { LogoffRevocationService } from './logoff-revoke/logoff-revocation.service';
|
|
import { OidcSecurityService } from './oidc.security.service';
|
|
import { PublicEventsService } from './public-events/public-events.service';
|
|
import { AbstractSecurityStorage } from './storage/abstract-security-storage';
|
|
import { BrowserStorageService } from './storage/browser-storage.service';
|
|
import { DefaultSessionStorageService } from './storage/default-sessionstorage.service';
|
|
import { StoragePersistenceService } from './storage/storage-persistence.service';
|
|
import { UserService } from './user-data/user.service';
|
|
import { CryptoService } from './utils/crypto/crypto.service';
|
|
import { EqualityService } from './utils/equality/equality.service';
|
|
import { FlowHelper } from './utils/flowHelper/flow-helper.service';
|
|
import { PlatformProvider } from './utils/platform-provider/platform.provider';
|
|
import { RedirectService } from './utils/redirect/redirect.service';
|
|
import { TokenHelperService } from './utils/tokenHelper/token-helper.service';
|
|
import { CurrentUrlService } from './utils/url/current-url.service';
|
|
import { UrlService } from './utils/url/url.service';
|
|
import { JwkWindowCryptoService } from './validation/jwk-window-crypto.service';
|
|
import { JwtWindowCryptoService } from './validation/jwt-window-crypto.service';
|
|
import { StateValidationService } from './validation/state-validation.service';
|
|
import { TokenValidationService } from './validation/token-validation.service';
|
|
|
|
export function provideAuth(
|
|
passedConfig: PassedInitialConfig,
|
|
...features: (AuthFeature | AuthFeature[])[]
|
|
): Provider[] {
|
|
const providers = _provideAuth(passedConfig);
|
|
|
|
const normailizedFeatures = features
|
|
.flat(Number.MAX_SAFE_INTEGER)
|
|
.filter(Boolean) as AuthFeature[];
|
|
|
|
for (const feature of normailizedFeatures) {
|
|
providers.push(...feature.ɵproviders);
|
|
}
|
|
|
|
return providers;
|
|
}
|
|
|
|
export function _provideAuth(passedConfig: PassedInitialConfig): Provider[] {
|
|
return [
|
|
// Make the PASSED_CONFIG available through injection
|
|
{ provide: PASSED_CONFIG, useValue: passedConfig },
|
|
// Create the loader: Either the one getting passed or a static one
|
|
passedConfig?.loader || {
|
|
provide: StsConfigLoader,
|
|
useFactory: createStaticLoader,
|
|
deps: [PASSED_CONFIG],
|
|
},
|
|
{
|
|
provide: AbstractSecurityStorage,
|
|
useClass: DefaultSessionStorageService,
|
|
},
|
|
{ provide: AbstractLoggerService, useClass: ConsoleLoggerService },
|
|
StandardLoginService,
|
|
JwkWindowCryptoService,
|
|
ParLoginService,
|
|
AuthStateService,
|
|
RefreshTokenCallbackHandlerService,
|
|
JwkExtractor,
|
|
TokenHelperService,
|
|
RefreshSessionIframeService,
|
|
ImplicitFlowCallbackHandlerService,
|
|
CallbackService,
|
|
EqualityService,
|
|
FlowsDataService,
|
|
PopUpService,
|
|
FlowsService,
|
|
StoragePersistenceService,
|
|
ClosestMatchingRouteService,
|
|
CryptoService,
|
|
AutoLoginService,
|
|
RedirectService,
|
|
LoginService,
|
|
CurrentUrlService,
|
|
UserCallbackHandlerService,
|
|
IFrameService,
|
|
BrowserStorageService,
|
|
ParService,
|
|
LoggerService,
|
|
RandomService,
|
|
PopUpLoginService,
|
|
AuthWellKnownService,
|
|
RefreshSessionRefreshTokenService,
|
|
CodeFlowCallbackService,
|
|
StateValidationService,
|
|
FlowHelper,
|
|
ImplicitFlowCallbackService,
|
|
PublicEventsService,
|
|
CodeFlowCallbackHandlerService,
|
|
UrlService,
|
|
ConfigValidationService,
|
|
RefreshSessionService,
|
|
HttpBaseService,
|
|
AuthWellKnownDataService,
|
|
CheckAuthService,
|
|
SilentRenewService,
|
|
StateValidationCallbackHandlerService,
|
|
JwtWindowCryptoService,
|
|
ResetAuthDataService,
|
|
IntervalService,
|
|
LogoffRevocationService,
|
|
HistoryJwtKeysCallbackHandlerService,
|
|
PlatformProvider,
|
|
RefreshSessionCallbackHandlerService,
|
|
CheckSessionService,
|
|
ConfigurationService,
|
|
ResponseTypeValidationService,
|
|
DataService,
|
|
UserService,
|
|
PeriodicallyTokenCheckService,
|
|
SigninKeyDataService,
|
|
TokenValidationService,
|
|
OidcSecurityService,
|
|
];
|
|
}
|