Update typings for passport-saml v1.1 (#35404)

* Update typings for passport-saml v1.1

* Change type per review comment
This commit is contained in:
Chris Barth 2019-05-14 17:30:03 -04:00 committed by Nathan Shively-Sanders
parent f930254275
commit e23911b784
3 changed files with 22 additions and 5 deletions

View File

@ -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 <https://github.com/cjbarth>
// Damian Assennato <https://github.com/dassennato>
@ -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;

View File

@ -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;

View File

@ -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});