@pagopa/io-spid-commons
Version:
Common code for integrating SPID authentication
28 lines (27 loc) • 1.58 kB
TypeScript
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;
}