UNPKG

@pagopa/io-spid-commons

Version:

Common code for integrating SPID authentication

28 lines (27 loc) 1.58 kB
import * as t from "io-ts"; import * as express from "express"; import { SamlConfig } from "passport-saml"; import * as PassportSaml from "passport-saml"; import { IExtendedCacheProvider } from "./redis_cache_provider"; import { PreValidateResponseDoneCallbackT, PreValidateResponseT, XmlAuthorizeTamperer } from "./spid"; export declare class CustomSamlClient<T extends Record<string, unknown>> extends PassportSaml.SAML { private readonly config; private readonly extededCacheProvider; private readonly requestMapper?; private readonly tamperAuthorizeRequest?; private readonly preValidateResponse?; private readonly doneCb?; constructor(config: SamlConfig, extededCacheProvider: IExtendedCacheProvider<T>, requestMapper?: ((req: express.Request) => t.Validation<T>) | undefined, tamperAuthorizeRequest?: XmlAuthorizeTamperer | undefined, preValidateResponse?: PreValidateResponseT<T> | undefined, doneCb?: PreValidateResponseDoneCallbackT<T> | undefined); /** * Custom version of `validatePostResponse` which checks * the response XML to satisfy SPID protocol constrains */ validatePostResponse(body: { readonly SAMLResponse: string; }, callback: (err: Error, profile?: unknown, loggedOut?: boolean) => void): void; /** * Custom version of `generateAuthorizeRequest` which tampers * the generated XML to satisfy SPID protocol constrains */ generateAuthorizeRequest(req: express.Request, isPassive: boolean, isHttpPostBinding: boolean, callback: (err: Error, xml?: string) => void): void; }