1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//! Compatibility API and low-level protocol helpers.
//!
//! Prefer the crate-root [`crate::Saml`] facade for new high-level browser SSO
//! and SLO flows. Import from this module when you need direct access to the
//! existing entity, flow, metadata, and logout building blocks.
//!
//! The typed [`crate::Saml`] API is the recommended starting point for new
//! browser SSO and SLO integrations because it makes role state, pending
//! requests, browser input, and validation policy explicit. This module keeps
//! the lower-level compatibility surface public for migrations from earlier
//! `saml-rs` releases, unusual interoperability requirements, conformance
//! tests, and callers that need to work directly with SAML XML.
//!
//! Raw APIs expose compatibility types such as [`FlowResult`],
//! [`BindingContext`], [`HttpRequest`], and [`EntitySetting`]. Because those
//! types sit closer to protocol messages, callers may need to enforce
//! correlation, replay protection, RelayState checks, and validation policy that
//! typed flows model directly.
//!
//! ```no_run
//! use saml_rs::raw::metadata::{Endpoint, IdpMetadataConfig, SpMetadataConfig};
//! use saml_rs::raw::{Binding, EntitySetting, IdentityProvider, ServiceProvider};
//!
//! # fn main() -> Result<(), saml_rs::SamlError> {
//! let idp = IdentityProvider::from_config(
//! &IdpMetadataConfig {
//! entity_id: "https://idp.example.com/metadata".into(),
//! single_sign_on_service: vec![Endpoint::new(
//! Binding::Redirect,
//! "https://idp.example.com/sso",
//! )],
//! ..Default::default()
//! },
//! EntitySetting::default(),
//! )?;
//! let sp = ServiceProvider::from_config(
//! &SpMetadataConfig {
//! entity_id: "https://sp.example.com/metadata".into(),
//! assertion_consumer_service: vec![Endpoint::new(
//! Binding::Post,
//! "https://sp.example.com/acs",
//! )],
//! ..Default::default()
//! },
//! EntitySetting::default(),
//! )?;
//!
//! let request = sp.create_login_request(&idp, Binding::Redirect, None)?;
//! # let _ = request;
//! # Ok(()) }
//! ```
pub use crateBinding;
pub use crate;
pub use crate;
pub use crate;
pub use cratelogout;
pub use cratemetadata;
pub use crate;