samlify
Version:
Node.js library for SAML SSO
35 lines (34 loc) • 1.83 kB
TypeScript
import type { ExtractorField, ExtractorFields, ExtractorResult } from './types';
export type { ExtractorField, ExtractorFields, ExtractorResult } from './types';
/** Default extractor fields for an inbound `AuthnRequest` (login request). */
export declare const loginRequestFields: ExtractorFields;
/** Two-tier status code extractor for login responses. */
export declare const loginResponseStatusFields: ExtractorFields;
/** Two-tier status code extractor for logout responses. */
export declare const logoutResponseStatusFields: ExtractorFields;
/**
* Build the login-response extractor bound to a particular assertion XML.
* Assertion-scoped fields are re-rooted at the assertion fragment via the
* `shortcut` mechanism so that wrapping attacks can't redirect extraction.
*
* @param assertion XML string of the (verified) assertion node
* @returns extractor fields ready for `extract`
*/
export declare const loginResponseFields: (assertion: string) => ExtractorFields;
/** Default extractor fields for an inbound `LogoutRequest`. */
export declare const logoutRequestFields: ExtractorFields;
/** Default extractor fields for an inbound `LogoutResponse`. */
export declare const logoutResponseFields: ExtractorFields;
/**
* Evaluate the given extractor fields against an XML document and return
* a flat object keyed by `field.key`. Handles:
* - multi-path localPaths (`string[][]`) collected with `|`
* - parent/child attribute aggregation (`index` + `attributePath`)
* - whole-subtree extraction (`context: true`)
* - single/multiple/zero-attribute text extraction
*
* @param context XML string to parse
* @param fields extractor field definitions
* @returns extracted SAML values keyed by field name
*/
export declare function extract(context: string, fields: ExtractorField[]): ExtractorResult;