openauth_core/options/
advanced.rs1use crate::utils::ip::Ipv6Subnet;
2
3use super::cookies::CookieConfig;
4
5#[derive(Debug, Clone, Default, PartialEq, Eq)]
7pub struct AdvancedOptions {
8 pub use_secure_cookies: Option<bool>,
9 pub cookie_prefix: Option<String>,
10 pub cross_subdomain_cookies: Option<CookieConfig>,
11 pub default_cookie_attributes: CookieAttributesOverride,
12 pub disable_csrf_check: bool,
13 pub disable_origin_check: bool,
14 pub skip_trailing_slashes: bool,
15 pub ip_address: IpAddressOptions,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq)]
19pub struct IpAddressOptions {
20 pub headers: Vec<String>,
21 pub disable_ip_tracking: bool,
22 pub ipv6_subnet: Ipv6Subnet,
23}
24
25impl Default for IpAddressOptions {
26 fn default() -> Self {
27 Self {
28 headers: vec!["x-forwarded-for".to_owned()],
29 disable_ip_tracking: false,
30 ipv6_subnet: Ipv6Subnet::Prefix64,
31 }
32 }
33}
34
35#[derive(Debug, Clone, Default, PartialEq, Eq)]
37pub struct CookieAttributesOverride {
38 pub domain: Option<String>,
39 pub path: Option<String>,
40 pub secure: Option<bool>,
41 pub http_only: Option<bool>,
42 pub same_site: Option<String>,
43 pub max_age: Option<u64>,
44 pub partitioned: Option<bool>,
45}