diff --git a/types/passport-saml/index.d.ts b/types/passport-saml/index.d.ts index 874b84ed7f..f7811bbec7 100644 --- a/types/passport-saml/index.d.ts +++ b/types/passport-saml/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for passport-saml 1.0 +// Type definitions for passport-saml 1.1 // Project: https://github.com/bergie/passport-saml // Definitions by: Chris Barth // Damian Assennato @@ -25,13 +25,13 @@ export type VerifiedCallback = (err: Error | null, user?: object, info?: object) export type VerifyWithRequest = (req: express.Request, profile: Profile, done: VerifiedCallback) => void; -export type VerifyWithoutRequest = (profile: object, done: VerifiedCallback) => void; +export type VerifyWithoutRequest = (profile: Profile, done: VerifiedCallback) => void; export class Strategy extends passport.Strategy { constructor(config: SamlConfig, verify: VerifyWithRequest | VerifyWithoutRequest); authenticate(req: express.Request, options: AuthenticateOptions | AuthorizeOptions): void; - logout(req: express.Request, callback: (err: Error | null, url: string) => void): void; - generateServiceProviderMetadata(decryptionCert?: string, signingCert?: string): string; + logout(req: express.Request, callback: (err: Error | null, url?: string) => void): void; + generateServiceProviderMetadata(decryptionCert: string | null, signingCert?: string | null): string; } export type CertCallback = (callback: (err: Error | null, cert?: string | string[]) => void) => void; diff --git a/types/passport-saml/multiSamlStrategy.d.ts b/types/passport-saml/multiSamlStrategy.d.ts index c9d8568aad..f2df04209a 100644 --- a/types/passport-saml/multiSamlStrategy.d.ts +++ b/types/passport-saml/multiSamlStrategy.d.ts @@ -11,6 +11,11 @@ declare namespace MultiSamlStrategy { declare class MultiSamlStrategy extends Strategy { constructor(config: MultiSamlStrategy.MultiSamlConfig, verify: VerifyWithRequest | VerifyWithoutRequest); + generateServiceProviderMetadata(decryptionCert: string | null, signingCert?: string | null): never; + generateServiceProviderMetadata(req: express.Request, + decryptionCert: string | null, + signingCert: string | null, + callback: (err: Error | null, metadata?: string) => void): string; } export = MultiSamlStrategy; diff --git a/types/passport-saml/passport-saml-tests.ts b/types/passport-saml/passport-saml-tests.ts index 04901e52a1..4c1116c112 100644 --- a/types/passport-saml/passport-saml-tests.ts +++ b/types/passport-saml/passport-saml-tests.ts @@ -33,7 +33,9 @@ const samlStrategy = new SamlStrategy.Strategy( passport.use(samlStrategy); passport.authenticate('samlCustomName', {failureRedirect: '/', failureFlash: true}); -const metadata = samlStrategy.generateServiceProviderMetadata("decryptionCert"); +const decryptMetadata: string = samlStrategy.generateServiceProviderMetadata("decryptionCert"); +const signMetadata: string = samlStrategy.generateServiceProviderMetadata(null, "signingCert"); +const metadata: string = samlStrategy.generateServiceProviderMetadata("decryptionCert", "signingCert"); const multiSamlStrategy = new MultiSamlStrategy( { @@ -58,5 +60,15 @@ const multiSamlStrategy = new MultiSamlStrategy( } ); +const req: express.Request = {} as any as express.Request; + +const multiDecryptionMetadata: never = multiSamlStrategy.generateServiceProviderMetadata("decryptionCert"); +const multiSigningMetadata: never = multiSamlStrategy.generateServiceProviderMetadata(null, "signingCert"); +const multiMetadata: never = multiSamlStrategy.generateServiceProviderMetadata("decryptionCert", "signingCert"); + +const multiDecryptionMetadataAsync: string = multiSamlStrategy.generateServiceProviderMetadata(req, "decryptionCert", null, () => ''); +const multiSigningMetadataAsync: string = multiSamlStrategy.generateServiceProviderMetadata(req, null, "signingCert", () => ''); +const multiMetadataAsync: string = multiSamlStrategy.generateServiceProviderMetadata(req, "decryptionCert", "signingCert", () => ''); + passport.use(multiSamlStrategy); passport.authenticate('samlCustomName', {failureRedirect: '/', failureFlash: true});