# ex_saml v1.0.2 - API Reference

## Modules

- [ExSaml](ExSaml.md): SAML 2.0 Service Provider (SP) library for Elixir/Phoenix applications.
- [ExSaml.Assertion](ExSaml.Assertion.md): SAML assertion returned from IDP upon successful user authentication.
- [ExSaml.AuthHandler](ExSaml.AuthHandler.md): Handles SAML authentication requests (sign-in and sign-out) with the Identity Provider.
- [ExSaml.AuthorizationCodeCache](ExSaml.AuthorizationCodeCache.md): TTL-based authorization code cache.
- [ExSaml.BoostrapProvidersLoader](ExSaml.BoostrapProvidersLoader.md): GenServer that loads SAML providers after the application and database are ready.
Uses retry logic to handle cases where the database isn't available yet.

- [ExSaml.Core](ExSaml.Core.md): Pure Elixir SAML 2.0 core library.
- [ExSaml.Core.Assertion](ExSaml.Core.Assertion.md): Represents a SAML Assertion element.
- [ExSaml.Core.AuthnRequest](ExSaml.Core.AuthnRequest.md): Represents a SAML AuthnRequest message.
- [ExSaml.Core.Binding](ExSaml.Core.Binding.md): SAML HTTP binding handlers.
- [ExSaml.Core.Contact](ExSaml.Core.Contact.md): Represents a SAML ContactPerson element.
- [ExSaml.Core.IdpMetadata](ExSaml.Core.IdpMetadata.md): Represents SAML Identity Provider metadata.
- [ExSaml.Core.LogoutRequest](ExSaml.Core.LogoutRequest.md): Represents a SAML LogoutRequest message.
- [ExSaml.Core.LogoutResponse](ExSaml.Core.LogoutResponse.md): Represents a SAML LogoutResponse message.
- [ExSaml.Core.Org](ExSaml.Core.Org.md): Represents a SAML Organization element.
- [ExSaml.Core.Response](ExSaml.Core.Response.md): Represents a SAML Response message.
- [ExSaml.Core.Saml](ExSaml.Core.Saml.md): Core SAML protocol module for encoding and decoding SAML messages.
- [ExSaml.Core.Sp](ExSaml.Core.Sp.md): SAML Service Provider (SP) operations.
- [ExSaml.Core.SpConfig](ExSaml.Core.SpConfig.md): Represents a SAML Service Provider configuration.
- [ExSaml.Core.SpMetadata](ExSaml.Core.SpMetadata.md): Represents SAML Service Provider metadata.
- [ExSaml.Core.Subject](ExSaml.Core.Subject.md): Represents a SAML Subject element within an Assertion.
- [ExSaml.Core.Util](ExSaml.Core.Util.md): Utility functions for SAML processing.
- [ExSaml.Core.Xml.C14n](ExSaml.Core.Xml.C14n.md): XML Canonicalization (C14N) for xmerl data structures.
- [ExSaml.Core.Xml.Dsig](ExSaml.Core.Xml.Dsig.md): XML Digital Signatures (XMLDSig) generation and verification.
- [ExSaml.ErrorMessages](ExSaml.ErrorMessages.md): Error messages
- [ExSaml.Provider](ExSaml.Provider.md): SAML 2.0 Service Provider.
- [ExSaml.ProvidersLoader](ExSaml.ProvidersLoader.md): Module to configure SAMLY using SP and IDP present in DB

- [ExSaml.RelayStateCache](ExSaml.RelayStateCache.md): TTL-based relay state cache with anti-replay protection.
- [ExSaml.Router](ExSaml.Router.md): Main SAML router. Forward this in your Phoenix router
- [ExSaml.SPHandler](ExSaml.SPHandler.md): Handles Service Provider SAML responses: metadata generation, assertion consumption,
and logout handling.
- [ExSaml.SecurityPlug](ExSaml.SecurityPlug.md): Plug that sets security headers on SAML responses.
- [ExSaml.State](ExSaml.State.md): Interface for SAML assertion storage.
- [ExSaml.State.Cache](ExSaml.State.Cache.md): Stores SAML assertions using a Nebulex cache backend.
- [ExSaml.State.ETS](ExSaml.State.ETS.md): Stores SAML assertion in ETS.
- [ExSaml.State.Session](ExSaml.State.Session.md): Stores SAML assertion in Plug session.
- [ExSaml.State.Store](ExSaml.State.Store.md): Specification for ExSaml state stores.

- [ExSaml.Subject](ExSaml.Subject.md): The subject in a SAML 2.0 Assertion.

