<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="A fluent, customized [`SessionMiddleware`] builder."><metaname="keywords"content="rust, rustlang, rust-lang, SessionMiddlewareBuilder"><title>SessionMiddlewareBuilder in actix_session::config - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><linkrel="stylesheet"href="../../static.files/normalize-76eba96aa4d2e634.css"><linkrel="stylesheet"href="../../static.files/rustdoc-a67221f24dabeddb.css"id="mainThemeStyle"><linkrel="stylesheet"id="themeStyle"href="../../static.files/light-4743e13df3dfe8c4.css"><linkrel="stylesheet"disabledhref="../../static.files/dark-0e1b889528bd466b.css"><linkrel="stylesheet"disabledhref="../../static.files/ayu-65289d5d067c7c66.css"><scriptid="default-settings"></script><scriptsrc="../../static.files/storage-d43fa987303ecbbb.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../../static.files/main-bc1b32400f872ddb.js"></script><noscript><linkrel="stylesheet"href="../../static.files/noscript-13285aec31fa243e.css"></noscript><linkrel="icon"href="https://actix.rs/favicon.ico"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle">☰</button><aclass="logo-container"href="../../actix_session/index.html"><imgsrc="https://actix.rs/img/logo.png"alt="logo"></a><h2></h2></nav><navclass="sidebar"><aclass="logo-container"href="../../actix_session/index.html">
<imgsrc="https://actix.rs/img/logo.png"alt="logo"></a><h2class="location"><ahref="#">SessionMiddlewareBuilder</a></h2><divclass="sidebar-elems"><section><h3><ahref="#implementations">Methods</a></h3><ulclass="block"><li><ahref="#method.build">build</a></li><li><ahref="#method.cookie_content_security">cookie_content_security</a></li><li><ahref="#method.cookie_domain">cookie_domain</a></li><li><ahref="#method.cookie_http_only">cookie_http_only</a></li><li><ahref="#method.cookie_name">cookie_name</a></li><li><ahref="#method.cookie_path">cookie_path</a></li><li><ahref="#method.cookie_same_site">cookie_same_site</a></li><li><ahref="#method.cookie_secure">cookie_secure</a></li><li><ahref="#method.session_lifecycle">session_lifecycle</a></li></ul><h3><ahref="#synthetic-implementations">Auto Trait Implementations</a></h3><ulclass="block"><li><ahref="#impl-RefUnwindSafe-for-SessionMiddlewareBuilder%3CStore%3E">RefUnwindSafe</a></li><li><ahref="#impl-Send-for-SessionMiddlewareBuilder%3CStore%3E">Send</a></li><li><ahref="#impl-Sync-for-SessionMiddlewareBuilder%3CStore%3E">Sync</a></li><li><ahref="#impl-Unpin-for-SessionMiddlewareBuilder%3CStore%3E">Unpin</a></li><li><ahref="#impl-UnwindSafe-for-SessionMiddlewareBuilder%3CStore%3E">UnwindSafe</a></li></ul><h3><ahref="#blanket-implementations">Blanket Implementations</a></h3><ulclass="block"><li><ahref="#impl-Any-for-SessionMiddlewareBuilder%3CStore%3E">Any</a></li><li><ahref="#impl-Borrow%3CT%3E-for-SessionMiddlewareBuilder%3CStore%3E">Borrow<T></a></li><li><ahref="#impl-BorrowMut%3CT%3E-for-SessionMiddlewareBuilder%3CStore%3E">BorrowMut<T></a></li><li><ahref="#impl-From%3CT%3E-for-SessionMiddlewareBuilder%3CStore%3E">From<T></a></li><li><ahref="#impl-Instrument-for-SessionMiddlewareBuilder%3CStore%3E">Instrument</a></li><li><ahref="#impl-Into%3CU%3E-for-SessionMiddlewareBuilder%3CStore%3E">Into<U></a></li><li><ahref="#impl-Same%3CT%3E-for-SessionMiddlewareBuilder%3CStore%3E">Same<T></a></li><li><ahref="#impl-TryFrom%3CU%3E-for-SessionMiddlewareBuilder%3CStore%3E">TryFrom<U></a></li><li><ahref="#impl-TryInto%3CU%3E-for-SessionMiddlewareBuilder%3CStore%3E">TryInto<U></a></li><li><ahref="#impl-VZip%3CV%3E-for-SessionMiddlewareBuilder%3CStore%3E">VZip<V></a></li><li><ahref="#impl-WithSubscriber-for-SessionMiddlewareBuilder%3CStore%3E">WithSubscriber</a></li></ul></section><h2><ahref="index.html">In actix_session::config</a></h2></div></nav><main><divclass="width-limiter"><navclass="sub"><formclass="search-form"><span></span><inputclass="search-input"name="search"aria-label="Run search in the documentation"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"title="help"tabindex="-1"><ahref="../../help.html">?</a></div><divid="settings-menu"tabindex="-1"><ahref="../../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><sectionid="main-content"class="content"><divclass="main-heading"><h1class="fqn">Struct <ahref="../index.html">actix_session</a>::<wbr><ahref="index.html">config</a>::<wbr><aclass="struct"href="#">SessionMiddlewareBuilder</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../static.files/clipboard-7571035ce49a181d.svg"width="19"height="18"alt="Copy item path"></button></h1><spanclass="out-of-band"><aclass="srclink"href="../../src/actix_session/config.rs.html#214-217">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><divclass="item-decl"><preclass="rust struct"><code>pub struct SessionMiddlewareBuilder<Store: <aclass="trait"href="../storage/trait.SessionStore.html"title="trait actix_session::storage::SessionStore">SessionStore</a>> { /* private fields */ }</code></pre></div><detailsclass="rustdoc-toggle top-doc"open><s
</div></details><h2id="implementations"class="small-section-header">Implementations<ahref="#implementations"class="anchor">§</a></h2><divid="implementations-list"><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#219-351">source</a><ahref="#impl-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<Store: <aclass="trait"href="../storage/trait.SessionStore.html"title="trait actix_session::storage::SessionStore">SessionStore</a>><aclass="struct"href="struct.SessionMiddlewareBuilder.html"title="struct actix_session::config::SessionMiddlewareBuilder">SessionMiddlewareBuilder</a><Store></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_name"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#230-233">source</a><h4class="code-header">pub fn <ahref="#method.cookie_name"class="fn">cookie_name</a>(self, name: <aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"title="struct alloc::string::String">String</a>) -> Self</h4></section></summary><divclass="docblock"><p>Set the name of the cookie used to store the session ID.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_secure"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#241-244">source</a><h4class="code-header">pub fn <ahref="#method.cookie_secure"class="fn">cookie_secure</a>(self, secure: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><divclass="docblock"><p>Set the <code>Secure</code> attribute for the cookie used to store the session ID.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.session_lifecycle"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#266-287">source</a><h4class="code-header">pub fn <ahref="#method.session_lifecycle"class="fn">session_lifecycle</a><S: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><<aclass="enum"href="enum.SessionLifecycle.html"title="enum actix_session::config::SessionLifecycle">SessionLifecycle</a>>>(<br> self,<br> session_lifecycle: S<br>) -> Self</h4></section></summary><divclass="docblock"><p>Determines what type of session cookie should be used and how its lifecycle should be managed.
Check out <ahref="enum.SessionLifecycle.html"title="SessionLifecycle"><code>SessionLifecycle</code></a>’s documentation for more details on the available options.</p>
<p>Default is <ahref="enum.SessionLifecycle.html#variant.BrowserSession"title="SessionLifecycle::BrowserSession"><code>SessionLifecycle::BrowserSession</code></a>.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_same_site"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#292-295">source</a><h4class="code-header">pub fn <ahref="#method.cookie_same_site"class="fn">cookie_same_site</a>(self, same_site: <aclass="enum"href="https://docs.rs/cookie/0.16/cookie/draft/enum.SameSite.html"title="enum cookie::draft::SameSite">SameSite</a>) -> Self</h4></section></summary><divclass="docblock"><p>Set the <code>SameSite</code> attribute for the cookie used to store the session ID.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_path"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#300-303">source</a><h4class="code-header">pub fn <ahref="#method.cookie_path"class="fn">cookie_path</a>(self, path: <aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"title="struct alloc::string::String">String</a>) -> Self</h4></section></summary><divclass="docblock"><p>Set the <code>Path</code> attribute for the cookie used to store the session ID.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_domain"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#311-314">source</a><h4class="code-header">pub fn <ahref="#method.cookie_domain"class="fn">cookie_domain</a>(self, domain: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"title="struct alloc::string::String">String</a>>) -> Self</h4></section></summary><divclass="docblock"><p>Set the <code>Domain</code> attribute for the cookie used to store the session ID.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_content_security"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#330-333">source</a><h4class="code-header">pub fn <ahref="#method.cookie_content_security"class="fn">cookie_content_security</a>(<br> self,<br> content_security: <aclass="enum"href="enum.CookieContentSecurity.html"title="enum actix_session::config::CookieContentSecurity">CookieContentSecurity</a><br>) -> Self</h4></section></summary><divclass="docblock"><p>Choose how the session cookie content should be secured.</p>
<li><ahref="enum.CookieContentSecurity.html#variant.Signed"title="CookieContentSecurity::Signed"><code>CookieContentSecurity::Signed</code></a> selects signed cookie content.</li>
<p>By default, the cookie content is encrypted. Encrypted was chosen instead of signed as
default because it reduces the chances of sensitive information being exposed in the session
key by accident, regardless of <ahref="../storage/trait.SessionStore.html"title="SessionStore"><code>SessionStore</code></a> implementation you chose to use.</p>
<p>For example, if you are using cookie-based storage, you definitely want the cookie content
to be encrypted—the whole session state is embedded in the cookie! If you are using
Redis-based storage, signed is more than enough - the cookie content is just a unique
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.cookie_http_only"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#341-344">source</a><h4class="code-header">pub fn <ahref="#method.cookie_http_only"class="fn">cookie_http_only</a>(self, http_only: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> Self</h4></section></summary><divclass="docblock"><p>Set the <code>HttpOnly</code> attribute for the cookie used to store the session ID.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.build"class="method has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#348-350">source</a><h4class="code-header">pub fn <ahref="#method.build"class="fn">build</a>(self) -><aclass="struct"href="../struct.SessionMiddleware.html"title="struct actix_session::SessionMiddleware">SessionMiddleware</a><Store></h4></section></summary><divclass="docblock"><p>Finalise the builder and return a <ahref="../struct.SessionMiddleware.html"title="SessionMiddleware"><code>SessionMiddleware</code></a> instance.</p>
</div></details></div></details></div><h2id="synthetic-implementations"class="small-section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor">§</a></h2><divid="synthetic-implementations-list"><sectionid="impl-RefUnwindSafe-for-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><ahref="#impl-RefUnwindSafe-for-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<Store><aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html"title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <aclass="struct"href="struct.SessionMiddlewareBuilder.html"title="struct actix_session::config::SessionMiddlewareBuilder">SessionMiddlewareBuilder</a><Store><spanclass="where fmt-newline">where<br> Store: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html"title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><sectionid="impl-Send-for-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><ahref="#impl-Send-for-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<Store><aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.SessionMiddlewareBuilder.html"title="struct actix_session::config::SessionMiddlewareBuilder">SessionMiddlewareBuilder</a><Store><spanclass="where fmt-newline">where<br> Store: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a>,</span></h3></section><sectionid="impl-Sync-for-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><ahref="#impl-Sync-for-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<Store><aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> for <aclass="struct"href="struct.SessionMiddlewareBuilder.html"title="struct actix_session::config::SessionMiddlewareBuilder">SessionMiddlewareBuilder</a><Store><spanclass="where fmt-newline">where<br> Store: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a>,</span></h3></section><sectionid="impl-Unpin-for-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><ahref="#impl-Unpin-for-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<Store><aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a> for <aclass="struct"href="struct.SessionMiddlewareBuilder.html"title="struct actix_session::config::SessionMiddlewareBuilder">SessionMiddlewareBuilder</a><Store><spanclass="where fmt-newline">where<br> Store: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><sectionid="impl-UnwindSafe-for-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><ahref="#impl-UnwindSafe-for-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<Store><aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html"title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <aclass="struct"href="struct.SessionMiddlewareBuilder.html"title="struct actix_session::config::SessionMiddlewareBuilder">SessionMiddlewareBuilder</a><Store><spanclass="where fmt-newline">where<br> Store: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html"title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Instrument-for-SessionMiddlewareBuilder%3CStore%3E"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><ahref="#impl-Instrument-for-SessionMiddlewareBuilder%3CStore%3E"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html"title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.instrument"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82">source</a><ahref="#method.instrument"class="anchor">§</a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument"class="fn">instrument</a>(self, span: <aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"title="struct tracing::span::Span">Span</a>) -><aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'>Instruments this type with the provided <ahref="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"title="Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.in_current_span"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><ahref="#method.in_current_span"class="anchor">§</a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span"class="fn">in_current_span</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'>Instruments this type with the <ahref="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current">current</a><ahref="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
<ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html"title="WithDispatch"><code>WithDispatch</code></a> wrapper. <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.with_current_subscriber"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221">source</a><ahref="#method.with_current_subscriber"class="anchor">§</a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber"class="fn">with_current_subscriber</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html"title="struct tracing::instrument::WithDispatch">WithDispatch</a><Self></h4></section></summary><divclass='docblock'>Attaches the current <ahref="https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber">default</a><ahref="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a