diff --git a/actix_cors/struct.Cors.html b/actix_cors/struct.Cors.html
index 6aeaaeb86..da37ea70d 100644
--- a/actix_cors/struct.Cors.html
+++ b/actix_cors/struct.Cors.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Builder for CORS middleware."><meta name="keywords" content="rust, rustlang, rust-lang, Cors"><title>Cors in actix_cors - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="icon" href="https://actix.rs/favicon.ico"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../actix_cors/index.html"><div class="logo-container"><img src="https://actix.rs/img/logo.png" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../actix_cors/index.html"><div class="logo-container">
-                    <img src="https://actix.rs/img/logo.png" alt="logo"></div></a><h2 class="location"><a href="#">Cors</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><ul><li><a href="#method.allow_any_header">allow_any_header</a></li><li><a href="#method.allow_any_method">allow_any_method</a></li><li><a href="#method.allow_any_origin">allow_any_origin</a></li><li><a href="#method.allowed_header">allowed_header</a></li><li><a href="#method.allowed_headers">allowed_headers</a></li><li><a href="#method.allowed_methods">allowed_methods</a></li><li><a href="#method.allowed_origin">allowed_origin</a></li><li><a href="#method.allowed_origin_fn">allowed_origin_fn</a></li><li><a href="#method.disable_preflight">disable_preflight</a></li><li><a href="#method.disable_vary_header">disable_vary_header</a></li><li><a href="#method.expose_any_header">expose_any_header</a></li><li><a href="#method.expose_headers">expose_headers</a></li><li><a href="#method.max_age">max_age</a></li><li><a href="#method.permissive">permissive</a></li><li><a href="#method.send_wildcard">send_wildcard</a></li><li><a href="#method.supports_credentials">supports_credentials</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Debug-for-Cors">Debug</a></li><li><a href="#impl-Default-for-Cors">Default</a></li><li><a href="#impl-Transform%3CS%2C%20ServiceRequest%3E-for-Cors">Transform&lt;S, ServiceRequest&gt;</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-Cors">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-Cors">!Send</a></li><li><a href="#impl-Sync-for-Cors">!Sync</a></li><li><a href="#impl-Unpin-for-Cors">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Cors">!UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-Cors">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Cors">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Cors">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Cors">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-Cors">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-Cors">Into&lt;U&gt;</a></li><li><a href="#impl-Same%3CT%3E-for-Cors">Same&lt;T&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Cors">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Cors">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-Cors">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-Cors">WithSubscriber</a></li></ul></div></section><h2 class="location"><a href="index.html">In actix_cors</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../actix_cors/index.html">
+                    <img src="https://actix.rs/img/logo.png" alt="logo"></div></a><h2 class="location"><a href="#">Cors</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><ul><li><a href="#method.allow_any_header">allow_any_header</a></li><li><a href="#method.allow_any_method">allow_any_method</a></li><li><a href="#method.allow_any_origin">allow_any_origin</a></li><li><a href="#method.allowed_header">allowed_header</a></li><li><a href="#method.allowed_headers">allowed_headers</a></li><li><a href="#method.allowed_methods">allowed_methods</a></li><li><a href="#method.allowed_origin">allowed_origin</a></li><li><a href="#method.allowed_origin_fn">allowed_origin_fn</a></li><li><a href="#method.block_on_origin_mismatch">block_on_origin_mismatch</a></li><li><a href="#method.disable_preflight">disable_preflight</a></li><li><a href="#method.disable_vary_header">disable_vary_header</a></li><li><a href="#method.expose_any_header">expose_any_header</a></li><li><a href="#method.expose_headers">expose_headers</a></li><li><a href="#method.max_age">max_age</a></li><li><a href="#method.permissive">permissive</a></li><li><a href="#method.send_wildcard">send_wildcard</a></li><li><a href="#method.supports_credentials">supports_credentials</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Debug-for-Cors">Debug</a></li><li><a href="#impl-Default-for-Cors">Default</a></li><li><a href="#impl-Transform%3CS%2C%20ServiceRequest%3E-for-Cors">Transform&lt;S, ServiceRequest&gt;</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-Cors">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-Cors">!Send</a></li><li><a href="#impl-Sync-for-Cors">!Sync</a></li><li><a href="#impl-Unpin-for-Cors">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Cors">!UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-Cors">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Cors">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Cors">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Cors">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-Cors">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-Cors">Into&lt;U&gt;</a></li><li><a href="#impl-Same%3CT%3E-for-Cors">Same&lt;T&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Cors">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Cors">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-Cors">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-Cors">WithSubscriber</a></li></ul></div></section><h2 class="location"><a href="index.html">In actix_cors</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../actix_cors/index.html">
                         <img src="https://actix.rs/img/logo.png" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="index.html">actix_cors</a>::<wbr><a class="struct" href="#">Cors</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../src/actix_cors/builder.rs.html#76-79">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Cors { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Builder for CORS middleware.</p>
 <p>To construct a CORS middleware, call <a href="struct.Cors.html#method.default" title="Cors::default()"><code>Cors::default()</code></a> to create a blank, restrictive builder.
 Then use any of the builder methods to customize CORS behavior.</p>
@@ -22,12 +22,12 @@ server will fail to start up or serve requests.</p>
     .max_age(<span class="number">3600</span>);
 
 <span class="comment">// `cors` can now be used in `App::wrap`.</span></code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#81-451">source</a><a href="#impl-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permissive" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#86-111">source</a><h4 class="code-header">pub fn <a href="#method.permissive" class="fnname">permissive</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>A very permissive set of default for quick development. Not recommended for production use.</p>
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#81-470">source</a><a href="#impl-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permissive" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#86-112">source</a><h4 class="code-header">pub fn <a href="#method.permissive" class="fnname">permissive</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>A very permissive set of default for quick development. Not recommended for production use.</p>
 <p><em>All</em> origins, methods, request headers and exposed headers allowed. Credentials supported.
 Max age 1 hour. Does not send wildcard.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_any_origin" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#116-122">source</a><h4 class="code-header">pub fn <a href="#method.allow_any_origin" class="fnname">allow_any_origin</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets allowed origin list to a state where any origin is accepted.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_any_origin" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#117-123">source</a><h4 class="code-header">pub fn <a href="#method.allow_any_origin" class="fnname">allow_any_origin</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets allowed origin list to a state where any origin is accepted.</p>
 <p>See <a href="struct.Cors.html#method.allowed_origin" title="Cors::allowed_origin"><code>Cors::allowed_origin</code></a> for more info on allowed origins.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_origin" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#148-175">source</a><h4 class="code-header">pub fn <a href="#method.allowed_origin" class="fnname">allowed_origin</a>(self, origin: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Add an origin that is allowed to make requests.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_origin" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#149-176">source</a><h4 class="code-header">pub fn <a href="#method.allowed_origin" class="fnname">allowed_origin</a>(self, origin: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Add an origin that is allowed to make requests.</p>
 <p>This method allows specifying a finite set of origins to verify the value of the <code>Origin</code>
 request header. These are <code>origin-or-null</code> types in the <a href="https://fetch.spec.whatwg.org/#origin-header">Fetch Standard</a>.</p>
 <p>By default, no origins are accepted.</p>
@@ -45,38 +45,38 @@ allowed origins.</p>
 <li>If supplied origin is not valid uri</li>
 <li>If supplied origin is a wildcard (<code>*</code>). <a href="struct.Cors.html#method.send_wildcard" title="Cors::send_wildcard"><code>Cors::send_wildcard</code></a> should be used instead.</li>
 </ul>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_origin_fn" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#185-196">source</a><h4 class="code-header">pub fn <a href="#method.allowed_origin_fn" class="fnname">allowed_origin_fn</a>&lt;F&gt;(self, f: F) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&amp;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/value/struct.HeaderValue.html" title="struct http::header::value::HeaderValue">HeaderValue</a>, &amp;RequestHead) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> + 'static,</span></h4></section></summary><div class="docblock"><p>Determinate allowed origins by processing requests which didn’t match any origins specified
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_origin_fn" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#186-197">source</a><h4 class="code-header">pub fn <a href="#method.allowed_origin_fn" class="fnname">allowed_origin_fn</a>&lt;F&gt;(self, f: F) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&amp;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/value/struct.HeaderValue.html" title="struct http::header::value::HeaderValue">HeaderValue</a>, &amp;RequestHead) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> + 'static,</span></h4></section></summary><div class="docblock"><p>Determinate allowed origins by processing requests which didn’t match any origins specified
 in the <code>allowed_origin</code>.</p>
 <p>The function will receive two parameters, the Origin header value, and the <code>RequestHead</code> of
 each request, which can be used to determine whether to allow the request or not.</p>
 <p>If the function returns <code>true</code>, the client’s <code>Origin</code> request header will be echoed back
 into the <code>Access-Control-Allow-Origin</code> response header.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_any_method" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#201-207">source</a><h4 class="code-header">pub fn <a href="#method.allow_any_method" class="fnname">allow_any_method</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets allowed methods list to all methods.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_any_method" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#202-208">source</a><h4 class="code-header">pub fn <a href="#method.allow_any_method" class="fnname">allow_any_method</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets allowed methods list to all methods.</p>
 <p>See <a href="struct.Cors.html#method.allowed_methods" title="Cors::allowed_methods"><code>Cors::allowed_methods</code></a> for more info on allowed methods.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_methods" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#217-239">source</a><h4 class="code-header">pub fn <a href="#method.allowed_methods" class="fnname">allowed_methods</a>&lt;U, M&gt;(self, methods: U) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = M&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;M: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/method/struct.Method.html" title="struct http::method::Method">Method</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;M as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/method/struct.Method.html" title="struct http::method::Method">Method</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Set a list of methods which allowed origins can perform.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_methods" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#218-240">source</a><h4 class="code-header">pub fn <a href="#method.allowed_methods" class="fnname">allowed_methods</a>&lt;U, M&gt;(self, methods: U) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = M&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;M: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/method/struct.Method.html" title="struct http::method::Method">Method</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;M as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/method/struct.Method.html" title="struct http::method::Method">Method</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Set a list of methods which allowed origins can perform.</p>
 <p>These will be sent in the <code>Access-Control-Allow-Methods</code> response header as specified in
 the <a href="https://fetch.spec.whatwg.org/#http-cors-protocol">Fetch Standard CORS protocol</a>.</p>
 <p>This defaults to an empty set.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_any_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#244-250">source</a><h4 class="code-header">pub fn <a href="#method.allow_any_header" class="fnname">allow_any_header</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets allowed request header list to a state where any header is accepted.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allow_any_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#245-251">source</a><h4 class="code-header">pub fn <a href="#method.allow_any_header" class="fnname">allow_any_header</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets allowed request header list to a state where any header is accepted.</p>
 <p>See <a href="struct.Cors.html#method.allowed_headers" title="Cors::allowed_headers"><code>Cors::allowed_headers</code></a> for more info on allowed request headers.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#255-277">source</a><h4 class="code-header">pub fn <a href="#method.allowed_header" class="fnname">allowed_header</a>&lt;H&gt;(self, header: H) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;H as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Add an allowed request header.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#256-278">source</a><h4 class="code-header">pub fn <a href="#method.allowed_header" class="fnname">allowed_header</a>&lt;H&gt;(self, header: H) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;H as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Add an allowed request header.</p>
 <p>See <a href="struct.Cors.html#method.allowed_headers" title="Cors::allowed_headers"><code>Cors::allowed_headers</code></a> for more info on allowed request headers.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_headers" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#289-316">source</a><h4 class="code-header">pub fn <a href="#method.allowed_headers" class="fnname">allowed_headers</a>&lt;U, H&gt;(self, headers: U) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = H&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;H as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Set a list of request header field names which can be used when this resource is accessed by
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.allowed_headers" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#290-317">source</a><h4 class="code-header">pub fn <a href="#method.allowed_headers" class="fnname">allowed_headers</a>&lt;U, H&gt;(self, headers: U) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = H&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;H as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Set a list of request header field names which can be used when this resource is accessed by
 allowed origins.</p>
 <p>If <code>All</code> is set, whatever is requested by the client in <code>Access-Control-Request-Headers</code>
 will be echoed back in the <code>Access-Control-Allow-Headers</code> header as specified in
 the <a href="https://fetch.spec.whatwg.org/#http-cors-protocol">Fetch Standard CORS protocol</a>.</p>
 <p>This defaults to an empty set.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expose_any_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#321-327">source</a><h4 class="code-header">pub fn <a href="#method.expose_any_header" class="fnname">expose_any_header</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets exposed response header list to a state where all headers are exposed.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expose_any_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#322-328">source</a><h4 class="code-header">pub fn <a href="#method.expose_any_header" class="fnname">expose_any_header</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Resets exposed response header list to a state where all headers are exposed.</p>
 <p>See <a href="struct.Cors.html#method.expose_headers" title="Cors::expose_headers"><code>Cors::expose_headers</code></a> for more info on exposed response headers.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expose_headers" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#336-362">source</a><h4 class="code-header">pub fn <a href="#method.expose_headers" class="fnname">expose_headers</a>&lt;U, H&gt;(self, headers: U) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = H&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;H as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Set a list of headers which are safe to expose to the API of a CORS API specification.
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expose_headers" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#337-363">source</a><h4 class="code-header">pub fn <a href="#method.expose_headers" class="fnname">expose_headers</a>&lt;U, H&gt;(self, headers: U) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = H&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;H as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/header/name/struct.HeaderName.html" title="struct http::header::name::HeaderName">HeaderName</a>&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/http/0.2.8/http/error/struct.Error.html" title="struct http::error::Error">HttpError</a>&gt;,</span></h4></section></summary><div class="docblock"><p>Set a list of headers which are safe to expose to the API of a CORS API specification.
 This corresponds to the <code>Access-Control-Expose-Headers</code> response header as specified in
 the <a href="https://fetch.spec.whatwg.org/#http-cors-protocol">Fetch Standard CORS protocol</a>.</p>
 <p>This defaults to an empty set.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_age" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#370-376">source</a><h4 class="code-header">pub fn <a href="#method.max_age" class="fnname">max_age</a>(self, max_age: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;&gt;) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Set a maximum time (in seconds) for which this CORS request may be cached. This value is set
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_age" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#371-377">source</a><h4 class="code-header">pub fn <a href="#method.max_age" class="fnname">max_age</a>(self, max_age: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;&gt;) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Set a maximum time (in seconds) for which this CORS request may be cached. This value is set
 as the <code>Access-Control-Max-Age</code> header as specified in the <a href="https://fetch.spec.whatwg.org/#http-cors-protocol">Fetch Standard CORS protocol</a>.</p>
 <p>Pass a number (of seconds) or use None to disable sending max age header.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.send_wildcard" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#389-395">source</a><h4 class="code-header">pub fn <a href="#method.send_wildcard" class="fnname">send_wildcard</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Set to use wildcard origins.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.send_wildcard" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#390-396">source</a><h4 class="code-header">pub fn <a href="#method.send_wildcard" class="fnname">send_wildcard</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Set to use wildcard origins.</p>
 <p>If send wildcard is set and the <code>allowed_origins</code> parameter is <code>All</code>, a wildcard
 <code>Access-Control-Allow-Origin</code> response header is sent, rather than the request’s
 <code>Origin</code> header.</p>
@@ -84,7 +84,7 @@ as the <code>Access-Control-Max-Age</code> header as specified in the <a href="h
 <code>allow_credentials</code> set to <code>true</code>. Depending on the mode of usage, this will either result
 in an <code>CorsError::CredentialsWithWildcardOrigin</code> error during actix launch or runtime.</p>
 <p>Defaults to <code>false</code>.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.supports_credentials" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#412-418">source</a><h4 class="code-header">pub fn <a href="#method.supports_credentials" class="fnname">supports_credentials</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Allows users to make authenticated requests</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.supports_credentials" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#413-419">source</a><h4 class="code-header">pub fn <a href="#method.supports_credentials" class="fnname">supports_credentials</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Allows users to make authenticated requests</p>
 <p>If true, injects the <code>Access-Control-Allow-Credentials</code> header in responses. This allows
 cookies and credentials to be submitted across domains as specified in
 the <a href="https://fetch.spec.whatwg.org/#http-cors-protocol">Fetch Standard CORS protocol</a>.</p>
@@ -93,21 +93,28 @@ the <a href="https://fetch.spec.whatwg.org/#http-cors-protocol">Fetch Standard C
 <p>Defaults to <code>false</code>.</p>
 <p>A server initialization error will occur if credentials are allowed, but the Origin is set
 to send wildcards (<code>*</code>); this is not allowed by the CORS protocol.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_vary_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#430-436">source</a><h4 class="code-header">pub fn <a href="#method.disable_vary_header" class="fnname">disable_vary_header</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Disable <code>Vary</code> header support.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_vary_header" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#431-437">source</a><h4 class="code-header">pub fn <a href="#method.disable_vary_header" class="fnname">disable_vary_header</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Disable <code>Vary</code> header support.</p>
 <p>When enabled the header <code>Vary: Origin</code> will be returned as per the Fetch Standard
 implementation guidelines.</p>
 <p>Setting this header when the <code>Access-Control-Allow-Origin</code> is dynamically generated
 (eg. when there is more than one allowed origin, and an Origin other than ‘*’ is returned)
 informs CDNs and other caches that the CORS headers are dynamic, and cannot be cached.</p>
 <p>By default, <code>Vary</code> header support is enabled.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_preflight" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#444-450">source</a><h4 class="code-header">pub fn <a href="#method.disable_preflight" class="fnname">disable_preflight</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Disable support for preflight requests.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.disable_preflight" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#445-451">source</a><h4 class="code-header">pub fn <a href="#method.disable_preflight" class="fnname">disable_preflight</a>(self) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Disable support for preflight requests.</p>
 <p>When enabled CORS middleware automatically handles <code>OPTIONS</code> requests.
 This is useful for application level middleware.</p>
 <p>By default <em>preflight</em> support is enabled.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#75">source</a><a href="#impl-Debug-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#75">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#453-484">source</a><a href="#impl-Default-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#458-483">source</a><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>A restrictive (security paranoid) set of defaults.</p>
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.block_on_origin_mismatch" class="method has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#463-469">source</a><h4 class="code-header">pub fn <a href="#method.block_on_origin_mismatch" class="fnname">block_on_origin_mismatch</a>(self, block: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>Configures whether requests should be pre-emptively blocked on mismatched origin.</p>
+<p>If <code>true</code>, a 400 Bad Request is returned immediately when a request fails origin validation.</p>
+<p>If <code>false</code>, the request will be processed as normal but relevant CORS headers will not be
+appended to the response. In this case, the browser is trusted to validate CORS headers and
+and block requests based on pre-flight requests. Use this setting to allow cURL and other
+non-browser HTTP clients to function as normal, no matter what <code>Origin</code> the request has.</p>
+<p>Defaults to <code>true</code>.</p>
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#75">source</a><a href="#impl-Debug-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#75">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#472-504">source</a><a href="#impl-Default-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#477-503">source</a><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -&gt; <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h4></section></summary><div class="docblock"><p>A restrictive (security paranoid) set of defaults.</p>
 <p><em>No</em> allowed origins, methods, request headers or exposed headers. Credentials
 not supported. No max age (will use browser’s default).</p>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Transform%3CS%2C%20ServiceRequest%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#486-545">source</a><a href="#impl-Transform%3CS%2C%20ServiceRequest%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;S, B&gt; Transform&lt;S, ServiceRequest&gt; for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Service&lt;ServiceRequest, Response = ServiceResponse&lt;B&gt;, Error = Error&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;S::Future: 'static,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: MessageBody + 'static,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Response" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Response" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Response</a> = ServiceResponse&lt;EitherBody&lt;B, BoxBody&gt;&gt;</h4></section></summary><div class='docblock'>Responses produced by the service.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Error</h4></section></summary><div class='docblock'>Errors produced by the service.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.InitError" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.InitError" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">InitError</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section></summary><div class='docblock'>Errors produced while building a transform service.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Transform" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Transform" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Transform</a> = CorsMiddleware&lt;S&gt;</h4></section></summary><div class='docblock'>The <code>TransformService</code> value created by this factory</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Future" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Future" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&lt;<a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a> as Transform&lt;S, ServiceRequest&gt;&gt;::Transform, &lt;<a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a> as Transform&lt;S, ServiceRequest&gt;&gt;::InitError&gt;&gt;</h4></section></summary><div class='docblock'>The future response value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_transform" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#499-544">source</a><a href="#method.new_transform" class="anchor"></a><h4 class="code-header">fn <a class="fnname">new_transform</a>(&amp;self, service: S) -&gt; Self::Future</h4></section></summary><div class='docblock'>Creates and returns a new Transform component, asynchronously</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Cors" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="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 <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-Send-for-Cors" class="impl has-srclink"><a href="#impl-Send-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-Sync-for-Cors" class="impl has-srclink"><a href="#impl-Sync-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-Unpin-for-Cors" class="impl has-srclink"><a href="#impl-Unpin-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-UnwindSafe-for-Cors" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="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 <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218">source</a><a href="#impl-BorrowMut%3CT%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#559">source</a><a href="#impl-From%3CT%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#562">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Transform%3CS%2C%20ServiceRequest%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#506-565">source</a><a href="#impl-Transform%3CS%2C%20ServiceRequest%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;S, B&gt; Transform&lt;S, ServiceRequest&gt; for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Service&lt;ServiceRequest, Response = ServiceResponse&lt;B&gt;, Error = Error&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;S::Future: 'static,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: MessageBody + 'static,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Response" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Response" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Response</a> = ServiceResponse&lt;EitherBody&lt;B, BoxBody&gt;&gt;</h4></section></summary><div class='docblock'>Responses produced by the service.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Error</h4></section></summary><div class='docblock'>Errors produced by the service.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.InitError" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.InitError" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">InitError</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section></summary><div class='docblock'>Errors produced while building a transform service.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Transform" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Transform" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Transform</a> = CorsMiddleware&lt;S&gt;</h4></section></summary><div class='docblock'>The <code>TransformService</code> value created by this factory</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Future" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Future" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&lt;<a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a> as Transform&lt;S, ServiceRequest&gt;&gt;::Transform, &lt;<a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a> as Transform&lt;S, ServiceRequest&gt;&gt;::InitError&gt;&gt;</h4></section></summary><div class='docblock'>The future response value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new_transform" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/actix_cors/builder.rs.html#519-564">source</a><a href="#method.new_transform" class="anchor"></a><h4 class="code-header">fn <a class="fnname">new_transform</a>(&amp;self, service: S) -&gt; Self::Future</h4></section></summary><div class='docblock'>Creates and returns a new Transform component, asynchronously</div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Cors" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="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 <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-Send-for-Cors" class="impl has-srclink"><a href="#impl-Send-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-Sync-for-Cors" class="impl has-srclink"><a href="#impl-Sync-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-Unpin-for-Cors" class="impl has-srclink"><a href="#impl-Unpin-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section><section id="impl-UnwindSafe-for-Cors" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl !<a class="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 <a class="struct" href="struct.Cors.html" title="struct actix_cors::Cors">Cors</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218">source</a><a href="#impl-BorrowMut%3CT%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#219">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#559">source</a><a href="#impl-From%3CT%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#562">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
 </div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Instrument-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#82">source</a><a href="#method.instrument" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.instrument" class="fnname">instrument</a>(self, span: <a class="struct" href="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html" title="struct tracing::span::Span">Span</a>) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided <a href="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html" title="Span"><code>Span</code></a>, returning an
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.in_current_span" class="fnname">in_current_span</a>(self) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html#method.current">current</a> <a href="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Cors" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#543">source</a><a href="#impl-Into%3CU%3E-for-Cors" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#551">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
diff --git a/search-index.js b/search-index.js
index df50362c8..e5a0ede94 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = JSON.parse('{\
-"actix_cors":{"doc":"Cross-Origin Resource Sharing (CORS) controls for Actix …","t":[13,13,3,4,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["BadRequestHeaders","BadRequestMethod","Cors","CorsError","HeadersNotAllowed","MethodNotAllowed","MissingOrigin","MissingRequestMethod","OriginNotAllowed","WildcardOrigin","allow_any_header","allow_any_method","allow_any_origin","allowed_header","allowed_headers","allowed_methods","allowed_origin","allowed_origin_fn","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","disable_preflight","disable_vary_header","error_response","expose_any_header","expose_headers","fmt","fmt","fmt","from","from","into","into","max_age","new_transform","permissive","provide","send_wildcard","status_code","supports_credentials","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["actix_cors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Request header <code>Access-Control-Request-Headers</code> has an …","Request header <code>Access-Control-Request-Method</code> has an …","Builder for CORS middleware.","Errors that can occur when processing CORS guarded …","One or more request headers are not allowed.","Request method is not allowed.","Request header <code>Origin</code> is required but was not provided.","Request header <code>Access-Control-Request-Method</code> is required …","Origin is not allowed to make this request.","Allowed origin argument must not be wildcard (<code>*</code>).","Resets allowed request header list to a state where any …","Resets allowed methods list to all methods.","Resets allowed origin list to a state where any origin is …","Add an allowed request header.","Set a list of request header field names which can be used …","Set a list of methods which allowed origins can perform.","Add an origin that is allowed to make requests.","Determinate allowed origins by processing requests which …","","","","","","","A restrictive (security paranoid) set of defaults.","Disable support for preflight requests.","Disable <code>Vary</code> header support.","","Resets exposed response header list to a state where all …","Set a list of headers which are safe to expose to the API …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Set a maximum time (in seconds) for which this CORS …","","A very permissive set of default for quick development. …","","Set to use wildcard origins.","","Allows users to make authenticated requests","","","","","","","","","",""],"i":[3,3,0,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,3,1,3,3,3,1,1,1,3,1,1,1,3,3,1,3,1,3,1,1,1,3,1,3,1,3,3,1,3,1,3,1,3,1,3],"f":[0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[[1,2],1],[1,1],[[]],[[]],[[]],[[]],[3,3],[[]],[[],1],[1,1],[1,1],[3,4],[1,1],[1,1],[[1,5],6],[[3,5],6],[[3,5],6],[[]],[[]],[[]],[[]],[[1,[9,[[8,[7]]]]],1],[1],[[],1],[10],[1,1],[3,11],[1,1],[[]],[[],12],[[],13],[[],13],[[],13],[[],13],[[],14],[[],14],[[]],[[]]],"p":[[3,"Cors"],[15,"str"],[4,"CorsError"],[3,"HttpResponse"],[3,"Formatter"],[6,"Result"],[15,"usize"],[4,"Option"],[8,"Into"],[3,"Demand"],[3,"StatusCode"],[3,"String"],[4,"Result"],[3,"TypeId"]]},\
+"actix_cors":{"doc":"Cross-Origin Resource Sharing (CORS) controls for Actix …","t":[13,13,3,4,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["BadRequestHeaders","BadRequestMethod","Cors","CorsError","HeadersNotAllowed","MethodNotAllowed","MissingOrigin","MissingRequestMethod","OriginNotAllowed","WildcardOrigin","allow_any_header","allow_any_method","allow_any_origin","allowed_header","allowed_headers","allowed_methods","allowed_origin","allowed_origin_fn","block_on_origin_mismatch","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","disable_preflight","disable_vary_header","error_response","expose_any_header","expose_headers","fmt","fmt","fmt","from","from","into","into","max_age","new_transform","permissive","provide","send_wildcard","status_code","supports_credentials","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":["actix_cors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Request header <code>Access-Control-Request-Headers</code> has an …","Request header <code>Access-Control-Request-Method</code> has an …","Builder for CORS middleware.","Errors that can occur when processing CORS guarded …","One or more request headers are not allowed.","Request method is not allowed.","Request header <code>Origin</code> is required but was not provided.","Request header <code>Access-Control-Request-Method</code> is required …","Origin is not allowed to make this request.","Allowed origin argument must not be wildcard (<code>*</code>).","Resets allowed request header list to a state where any …","Resets allowed methods list to all methods.","Resets allowed origin list to a state where any origin is …","Add an allowed request header.","Set a list of request header field names which can be used …","Set a list of methods which allowed origins can perform.","Add an origin that is allowed to make requests.","Determinate allowed origins by processing requests which …","Configures whether requests should be pre-emptively …","","","","","","","A restrictive (security paranoid) set of defaults.","Disable support for preflight requests.","Disable <code>Vary</code> header support.","","Resets exposed response header list to a state where all …","Set a list of headers which are safe to expose to the API …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Set a maximum time (in seconds) for which this CORS …","","A very permissive set of default for quick development. …","","Set to use wildcard origins.","","Allows users to make authenticated requests","","","","","","","","","",""],"i":[4,4,0,0,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,4,1,4,4,4,1,1,1,4,1,1,1,4,4,1,4,1,4,1,1,1,4,1,4,1,4,4,1,4,1,4,1,4,1,4],"f":[0,0,0,0,0,0,0,0,0,0,[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[[1,2],1],[1,1],[[1,3],1],[[]],[[]],[[]],[[]],[4,4],[[]],[[],1],[1,1],[1,1],[4,5],[1,1],[1,1],[[1,6],7],[[4,6],7],[[4,6],7],[[]],[[]],[[]],[[]],[[1,[10,[[9,[8]]]]],1],[1],[[],1],[11],[1,1],[4,12],[1,1],[[]],[[],13],[[],14],[[],14],[[],14],[[],14],[[],15],[[],15],[[]],[[]]],"p":[[3,"Cors"],[15,"str"],[15,"bool"],[4,"CorsError"],[3,"HttpResponse"],[3,"Formatter"],[6,"Result"],[15,"usize"],[4,"Option"],[8,"Into"],[3,"Demand"],[3,"StatusCode"],[3,"String"],[4,"Result"],[3,"TypeId"]]},\
 "actix_identity":{"doc":"Identity management for Actix Web.","t":[3,8,3,11,11,11,11,11,11,11,0,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["Identity","IdentityExt","IdentityMiddleware","borrow","borrow","borrow_mut","borrow_mut","builder","clone","clone_into","config","default","from","from","from_request","get_identity","id","into","into","login","logout","new_transform","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","DeleteIdentityKeys","IdentityMiddlewareBuilder","LogoutBehaviour","PurgeSession","borrow","borrow","borrow_mut","borrow_mut","build","clone","clone","clone_into","clone_into","fmt","fmt","from","from","into","into","login_deadline","logout_behaviour","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","visit_deadline","vzip","vzip"],"q":["actix_identity","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_identity::config","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["A verified user identity. It can be used as a request …","Helper trait to retrieve an <code>Identity</code> instance from various …","Identity management middleware.","","","","","A fluent API to configure <code>IdentityMiddleware</code>.","","","Configuration options to tune the behaviour of …","","Returns the argument unchanged.","Returns the argument unchanged.","","Retrieve the identity attached to the current session, if …","Return the user id associated to the current session.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Attach a valid user identity to the current session.","Remove the user identity from the current session.","","","","","","","","","","","When <code>Identity::logout</code> is called, remove the identity …","A fluent builder to construct an <code>IdentityMiddleware</code> …","<code>LogoutBehaviour</code> controls what actions are going to be …","When <code>Identity::logout</code> is called, purge the current session.","","","","","Finalises the builder and returns an <code>IdentityMiddleware</code> …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Automatically logs out users after a certain amount of …","Determines how <code>Identity::logout</code> affects the current …","","","","","","","","","Automatically logs out users after a certain amount of …","",""],"i":[0,0,0,5,2,5,2,2,2,2,0,2,5,2,5,16,5,5,2,5,5,2,2,5,2,5,2,5,2,5,2,11,0,0,11,11,1,11,1,1,11,1,11,1,11,1,11,1,11,1,1,1,11,1,11,1,11,1,11,1,1,11,1],"f":[0,0,0,[[]],[[]],[[]],[[]],[[],1],[2,2],[[]],0,[[],2],[[]],[[]],[[3,4]],[[],[[7,[5,6]]]],[5,[[7,[8,6]]]],[[]],[[]],[[9,8],[[7,[5,6]]]],[5],[2],[[]],[[],7],[[],7],[[],7],[[],7],[[],10],[[],10],[[]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],[1,2],[11,11],[1,1],[[]],[[]],[[11,12],13],[[1,12],13],[[]],[[]],[[]],[[]],[[1,[15,[14]]],1],[[1,11],1],[[]],[[]],[[],7],[[],7],[[],7],[[],7],[[],10],[[],10],[[1,[15,[14]]],1],[[]],[[]]],"p":[[3,"IdentityMiddlewareBuilder"],[3,"IdentityMiddleware"],[3,"HttpRequest"],[4,"Payload"],[3,"Identity"],[3,"Error"],[4,"Result"],[3,"String"],[3,"Extensions"],[3,"TypeId"],[4,"LogoutBehaviour"],[3,"Formatter"],[6,"Result"],[3,"Duration"],[4,"Option"],[8,"IdentityExt"]]},\
 "actix_limitation":{"doc":"Rate limiter using a fixed window counter for arbitrary …","t":[3,13,17,17,17,17,4,13,3,13,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12],"n":["Builder","Client","DEFAULT_COOKIE_NAME","DEFAULT_PERIOD_SECS","DEFAULT_REQUEST_LIMIT","DEFAULT_SESSION_KEY","Error","LimitExceeded","Limiter","Other","RateLimiter","Status","Time","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","clone","clone","clone_into","clone_into","cookie_name","count","default","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","key_by","limit","limit","new_transform","period","provide","remaining","reset_epoch_utc","session_key","source","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","0","0","0","0"],"q":["actix_limitation","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_limitation::Error","","",""],"d":["Rate limiter builder.","Redis client failed to connect or run a query.","Default cookie name.","Default period (in seconds).","Default request limit.","Default session key.","Failure modes of the rate limiter.","Limit is exceeded for a key.","Rate limiter.","Generic error.","Rate limit middleware.","A report for a given key containing the limit status.","Time conversion failed.","","","","","","","","","","","Finalizes and returns a <code>Limiter</code>.","Construct rate limiter builder with defaults.","","","","","Sets name of cookie to be sent.","Consumes one rate limit unit, returning the status.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Sets rate limit key derivation function.","Set upper limit.","Returns the maximum number of requests allowed in the …","","Set limit window/period.","","Returns how many requests are left in the current period.","Returns a UNIX timestamp in UTC approximately when the …","Sets session key to be used in backend.","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,3,0,0,0,0,0,3,0,3,0,0,3,1,3,10,7,2,1,3,10,7,2,1,2,7,2,7,2,1,2,10,1,3,3,10,7,2,1,3,3,3,10,7,2,1,3,10,7,2,1,1,7,10,1,3,7,7,1,3,7,2,3,1,3,10,7,2,1,3,10,7,2,1,3,10,7,2,1,3,10,7,2,21,22,23,24],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,[[4,[2,3]]]],[[[6,[5]]],1],[7,7],[2,2],[[]],[[]],[[1,[6,[[9,[8]]]]],1],[[2,[6,[5]]],[[4,[7,3]]]],[[],10],[[1,11],12],[[3,11],12],[[3,11],12],[[10,11],12],[[7,11],12],[[2,11],12],[[]],[[]],[13,3],[14,3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[[1,15],1],[7,15],[10],[[1,16],1],[17],[7,15],[7,15],[[1,[6,[[9,[8]]]]],1],[3,[[19,[18]]]],[[]],[[]],[[],5],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],20],[[],20],[[],20],[[],20],[[],20],[[]],[[]],[[]],[[]],[[]],0,0,0,0],"p":[[3,"Builder"],[3,"Limiter"],[4,"Error"],[4,"Result"],[3,"String"],[8,"Into"],[3,"Status"],[15,"str"],[4,"Cow"],[3,"RateLimiter"],[3,"Formatter"],[6,"Result"],[3,"ComponentRange"],[3,"RedisError"],[15,"usize"],[3,"Duration"],[3,"Demand"],[8,"Error"],[4,"Option"],[3,"TypeId"],[13,"Client"],[13,"LimitExceeded"],[13,"Time"],[13,"Other"]]},\
 "actix_protobuf":{"doc":"Protobuf payload extractor for Actix Web.","t":[12,13,13,13,13,3,3,3,4,8,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12],"n":["0","ContentType","Deserialize","Overflow","Payload","ProtoBuf","ProtoBufConfig","ProtoBufMessage","ProtoBufPayloadError","ProtoBufResponseBuilder","Serialize","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","deref","deref_mut","error_response","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_request","into","into","into","into","into_future","limit","limit","new","poll","protobuf","resource_path","respond_to","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_poll","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","0","0","0"],"q":["actix_protobuf","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","actix_protobuf::ProtoBufPayloadError","",""],"d":["","Content type error","Deserialize error","Payload size is bigger than 256k","Payload error","","","","","","Serialize error","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","Change max size of payload. By default max size is 256Kb","Change max size of payload. By default max size is 256Kb","Create <code>ProtoBufMessage</code> for request.","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[3,4,4,4,4,0,0,0,0,0,4,3,1,14,4,3,1,14,4,1,3,3,4,3,3,4,4,3,1,14,4,4,4,3,3,1,14,4,14,1,14,14,14,23,3,3,3,4,3,1,14,4,3,1,14,4,14,3,1,14,4,3,1,14,4,24,25,26],"f":[0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[[3,[2]]]],[[[3,[2]]]],[4,5],[[[3,[2]],6],7],[[[3,[2]],6],7],[[4,6],7],[[4,6],7],[[]],[[]],[[]],[8,4],[9,4],[[]],[[10,11]],[[]],[[]],[[]],[[]],[[]],[[1,12],1],[[[14,[[0,[2,13]]]],12],[[14,[[0,[2,13]]]]]],[[10,11],[[14,[[0,[2,13]]]]]],[[[15,[[14,[[0,[2,13]]]]]],16],17],[2,[[19,[5,18]]]],[[],20],[[[3,[[0,[2,13]]]],10],5],[[],21],[[],21],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[],19],[[15,16],17],[[],22],[[],22],[[],22],[[],22],[[]],[[]],[[]],[[]],0,0,0],"p":[[3,"ProtoBufConfig"],[8,"Message"],[3,"ProtoBuf"],[4,"ProtoBufPayloadError"],[3,"HttpResponse"],[3,"Formatter"],[6,"Result"],[3,"DecodeError"],[4,"PayloadError"],[3,"HttpRequest"],[4,"Payload"],[15,"usize"],[8,"Default"],[3,"ProtoBufMessage"],[3,"Pin"],[3,"Context"],[4,"Poll"],[3,"Error"],[4,"Result"],[3,"Path"],[3,"String"],[3,"TypeId"],[8,"ProtoBufResponseBuilder"],[13,"Serialize"],[13,"Deserialize"],[13,"Payload"]]},\
diff --git a/settings.html b/settings.html
index b3c31e83e..52c8bb493 100644
--- a/settings.html
+++ b/settings.html
@@ -1,3 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="./normalize.css"><link rel="stylesheet" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="./ayu.css" disabled><link rel="stylesheet" href="./dark.css" disabled><link rel="stylesheet" href="./light.css" id="themeStyle"><script id="default-settings" ></script><script src="./storage.js"></script><script defer src="./main.js"></script><noscript><link rel="stylesheet" href="./noscript.css"></noscript><link rel="icon" href="https://actix.rs/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="./actix_settings/index.html"><div class="logo-container"><img src="https://actix.rs/img/logo.png" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="./actix_settings/index.html"><div class="logo-container">
-                    <img src="https://actix.rs/img/logo.png" alt="logo"></div></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="./actix_settings/index.html">
-                        <img src="https://actix.rs/img/logo.png" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Rustdoc settings</span></h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" type="text/css" href="settings.css"><script defer src="settings.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-current-crate="actix_settings" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (432abd86f 2022-09-20)" ></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><meta name="keywords" content="rust, rustlang, rust-lang"><title>Rustdoc settings</title><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="./SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="./normalize.css"><link rel="stylesheet" href="./rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="./ayu.css" disabled><link rel="stylesheet" href="./dark.css" disabled><link rel="stylesheet" href="./light.css" id="themeStyle"><script id="default-settings" ></script><script src="./storage.js"></script><script defer src="./main.js"></script><noscript><link rel="stylesheet" href="./noscript.css"></noscript><link rel="alternate icon" type="image/png" href="./favicon-16x16.png"><link rel="alternate icon" type="image/png" href="./favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="./favicon.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="./actix_redis/index.html"><div class="logo-container"><img class="rust-logo" src="./rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="./actix_redis/index.html"><div class="logo-container"><img class="rust-logo" src="./rust-logo.svg" alt="logo"></div></a><h2 class="location">Settings</h2><div class="sidebar-elems"></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="./actix_redis/index.html"><img class="rust-logo" src="./rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="./settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="./wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Rustdoc settings</span></h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable Javascript be able to update your settings.</section></noscript><link rel="stylesheet" type="text/css" href="settings.css"><script defer src="settings.js"></script></section></div></main><div id="rustdoc-vars" data-root-path="./" data-current-crate="actix_redis" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (432abd86f 2022-09-20)" ></div></body></html>
\ No newline at end of file
diff --git a/src/actix_cors/builder.rs.html b/src/actix_cors/builder.rs.html
index 5a0d033f1..f458d3f7b 100644
--- a/src/actix_cors/builder.rs.html
+++ b/src/actix_cors/builder.rs.html
@@ -641,6 +641,26 @@
 <span id="639">639</span>
 <span id="640">640</span>
 <span id="641">641</span>
+<span id="642">642</span>
+<span id="643">643</span>
+<span id="644">644</span>
+<span id="645">645</span>
+<span id="646">646</span>
+<span id="647">647</span>
+<span id="648">648</span>
+<span id="649">649</span>
+<span id="650">650</span>
+<span id="651">651</span>
+<span id="652">652</span>
+<span id="653">653</span>
+<span id="654">654</span>
+<span id="655">655</span>
+<span id="656">656</span>
+<span id="657">657</span>
+<span id="658">658</span>
+<span id="659">659</span>
+<span id="660">660</span>
+<span id="661">661</span>
 </pre><pre class="rust"><code><span class="kw">use </span>std::{collections::HashSet, convert::TryInto, iter::FromIterator, rc::Rc};
 
 <span class="kw">use </span>actix_utils::future::{<span class="self">self</span>, Ready};
@@ -745,6 +765,7 @@
             send_wildcard: <span class="bool-val">false</span>,
             supports_credentials: <span class="bool-val">true</span>,
             vary_header: <span class="bool-val">true</span>,
+            block_on_origin_mismatch: <span class="bool-val">true</span>,
         };
 
         Cors {
@@ -1091,6 +1112,24 @@
 
         <span class="self">self
     </span>}
+
+    <span class="doccomment">/// Configures whether requests should be pre-emptively blocked on mismatched origin.
+    ///
+    /// If `true`, a 400 Bad Request is returned immediately when a request fails origin validation.
+    ///
+    /// If `false`, the request will be processed as normal but relevant CORS headers will not be
+    /// appended to the response. In this case, the browser is trusted to validate CORS headers and
+    /// and block requests based on pre-flight requests. Use this setting to allow cURL and other
+    /// non-browser HTTP clients to function as normal, no matter what `Origin` the request has.
+    ///
+    /// Defaults to `true`.
+    </span><span class="kw">pub fn </span>block_on_origin_mismatch(<span class="kw-2">mut </span><span class="self">self</span>, block: bool) -&gt; Cors {
+        <span class="kw">if let </span><span class="prelude-val">Some</span>(cors) = cors(<span class="kw-2">&amp;mut </span><span class="self">self</span>.inner, <span class="kw-2">&amp;</span><span class="self">self</span>.error) {
+            cors.block_on_origin_mismatch = block
+        }
+
+        <span class="self">self
+    </span>}
 }
 
 <span class="kw">impl </span>Default <span class="kw">for </span>Cors {
@@ -1117,6 +1156,7 @@
             send_wildcard: <span class="bool-val">false</span>,
             supports_credentials: <span class="bool-val">false</span>,
             vary_header: <span class="bool-val">true</span>,
+            block_on_origin_mismatch: <span class="bool-val">true</span>,
         };
 
         Cors {
diff --git a/src/actix_cors/inner.rs.html b/src/actix_cors/inner.rs.html
index 767957330..871406255 100644
--- a/src/actix_cors/inner.rs.html
+++ b/src/actix_cors/inner.rs.html
@@ -388,6 +388,11 @@
 <span id="386">386</span>
 <span id="387">387</span>
 <span id="388">388</span>
+<span id="389">389</span>
+<span id="390">390</span>
+<span id="391">391</span>
+<span id="392">392</span>
+<span id="393">393</span>
 </pre><pre class="rust"><code><span class="kw">use </span>std::{
     collections::HashSet,
     convert::{TryFrom, TryInto},
@@ -455,16 +460,19 @@
     <span class="kw">pub</span>(<span class="kw">crate</span>) send_wildcard: bool,
     <span class="kw">pub</span>(<span class="kw">crate</span>) supports_credentials: bool,
     <span class="kw">pub</span>(<span class="kw">crate</span>) vary_header: bool,
+    <span class="kw">pub</span>(<span class="kw">crate</span>) block_on_origin_mismatch: bool,
 }
 
 <span class="kw">static </span>EMPTY_ORIGIN_SET: Lazy&lt;HashSet&lt;HeaderValue&gt;&gt; = Lazy::new(HashSet::new);
 
 <span class="kw">impl </span>Inner {
-    <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>validate_origin(<span class="kw-2">&amp;</span><span class="self">self</span>, req: <span class="kw-2">&amp;</span>RequestHead) -&gt; <span class="prelude-ty">Result</span>&lt;(), CorsError&gt; {
+    <span class="doccomment">/// The bool returned in Ok(_) position indicates whether the `Access-Control-Allow-Origin`
+    /// header should be added to the response or not.
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>validate_origin(<span class="kw-2">&amp;</span><span class="self">self</span>, req: <span class="kw-2">&amp;</span>RequestHead) -&gt; <span class="prelude-ty">Result</span>&lt;bool, CorsError&gt; {
         <span class="comment">// return early if all origins are allowed or get ref to allowed origins set
         </span><span class="attribute">#[allow(clippy::mutable_key_type)]
         </span><span class="kw">let </span>allowed_origins = <span class="kw">match </span><span class="kw-2">&amp;</span><span class="self">self</span>.allowed_origins {
-            AllOrSome::All <span class="kw">if </span><span class="self">self</span>.allowed_origins_fns.is_empty() =&gt; <span class="kw">return </span><span class="prelude-val">Ok</span>(()),
+            AllOrSome::All <span class="kw">if </span><span class="self">self</span>.allowed_origins_fns.is_empty() =&gt; <span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="bool-val">true</span>),
             AllOrSome::Some(allowed_origins) =&gt; allowed_origins,
             <span class="comment">// only function origin validators are defined
             </span><span class="kw">_ </span>=&gt; <span class="kw-2">&amp;</span>EMPTY_ORIGIN_SET,
@@ -475,9 +483,11 @@
             <span class="comment">// origin header exists and is a string
             </span><span class="prelude-val">Some</span>(origin) =&gt; {
                 <span class="kw">if </span>allowed_origins.contains(origin) || <span class="self">self</span>.validate_origin_fns(origin, req) {
-                    <span class="prelude-val">Ok</span>(())
-                } <span class="kw">else </span>{
+                    <span class="prelude-val">Ok</span>(<span class="bool-val">true</span>)
+                } <span class="kw">else if </span><span class="self">self</span>.block_on_origin_mismatch {
                     <span class="prelude-val">Err</span>(CorsError::OriginNotAllowed)
+                } <span class="kw">else </span>{
+                    <span class="prelude-val">Ok</span>(<span class="bool-val">false</span>)
                 }
             }
 
diff --git a/src/actix_cors/middleware.rs.html b/src/actix_cors/middleware.rs.html
index fcb914b19..5a4e967e2 100644
--- a/src/actix_cors/middleware.rs.html
+++ b/src/actix_cors/middleware.rs.html
@@ -263,6 +263,19 @@
 <span id="261">261</span>
 <span id="262">262</span>
 <span id="263">263</span>
+<span id="264">264</span>
+<span id="265">265</span>
+<span id="266">266</span>
+<span id="267">267</span>
+<span id="268">268</span>
+<span id="269">269</span>
+<span id="270">270</span>
+<span id="271">271</span>
+<span id="272">272</span>
+<span id="273">273</span>
+<span id="274">274</span>
+<span id="275">275</span>
+<span id="276">276</span>
 </pre><pre class="rust"><code><span class="kw">use </span>std::{collections::HashSet, rc::Rc};
 
 <span class="kw">use </span>actix_utils::future::ok;
@@ -281,7 +294,7 @@
 <span class="kw">use crate</span>::{
     builder::intersperse_header_values,
     inner::{add_vary_header, header_value_try_into_method},
-    AllOrSome, Inner,
+    AllOrSome, CorsError, Inner,
 };
 
 <span class="doccomment">/// Service wrapper for Cross-Origin Resource Sharing support.
@@ -325,9 +338,14 @@
     </span><span class="kw">fn </span>handle_preflight(<span class="kw-2">&amp;</span><span class="self">self</span>, req: ServiceRequest) -&gt; ServiceResponse {
         <span class="kw">let </span>inner = Rc::clone(<span class="kw-2">&amp;</span><span class="self">self</span>.inner);
 
+        <span class="kw">match </span>inner.validate_origin(req.head()) {
+            <span class="prelude-val">Ok</span>(<span class="bool-val">true</span>) =&gt; {}
+            <span class="prelude-val">Ok</span>(<span class="bool-val">false</span>) =&gt; <span class="kw">return </span>req.error_response(CorsError::OriginNotAllowed),
+            <span class="prelude-val">Err</span>(err) =&gt; <span class="kw">return </span>req.error_response(err),
+        };
+
         <span class="kw">if let </span><span class="prelude-val">Err</span>(err) = inner
-            .validate_origin(req.head())
-            .and_then(|<span class="kw">_</span>| inner.validate_allowed_method(req.head()))
+            .validate_allowed_method(req.head())
             .and_then(|<span class="kw">_</span>| inner.validate_allowed_headers(req.head()))
         {
             <span class="kw">return </span>req.error_response(err);
@@ -373,11 +391,17 @@
         req.into_response(res)
     }
 
-    <span class="kw">fn </span>augment_response&lt;B&gt;(inner: <span class="kw-2">&amp;</span>Inner, <span class="kw-2">mut </span>res: ServiceResponse&lt;B&gt;) -&gt; ServiceResponse&lt;B&gt; {
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(origin) = inner.access_control_allow_origin(res.request().head()) {
-            res.headers_mut()
-                .insert(header::ACCESS_CONTROL_ALLOW_ORIGIN, origin);
-        };
+    <span class="kw">fn </span>augment_response&lt;B&gt;(
+        inner: <span class="kw-2">&amp;</span>Inner,
+        origin_allowed: bool,
+        <span class="kw-2">mut </span>res: ServiceResponse&lt;B&gt;,
+    ) -&gt; ServiceResponse&lt;B&gt; {
+        <span class="kw">if </span>origin_allowed {
+            <span class="kw">if let </span><span class="prelude-val">Some</span>(origin) = inner.access_control_allow_origin(res.request().head()) {
+                res.headers_mut()
+                    .insert(header::ACCESS_CONTROL_ALLOW_ORIGIN, origin);
+            };
+        }
 
         <span class="kw">if let </span><span class="prelude-val">Some</span>(<span class="kw-2">ref </span>expose) = inner.expose_headers_baked {
             <span class="macro">log::trace!</span>(<span class="string">&quot;exposing selected headers: {:?}&quot;</span>, expose);
@@ -447,8 +471,10 @@
         }
 
         <span class="comment">// only check actual requests with a origin header
-        </span><span class="kw">if </span>origin.is_some() {
-            <span class="kw">if let </span><span class="prelude-val">Err</span>(err) = <span class="self">self</span>.inner.validate_origin(req.head()) {
+        </span><span class="kw">let </span>origin_allowed = <span class="kw">match </span>(origin, <span class="self">self</span>.inner.validate_origin(req.head())) {
+            (<span class="prelude-val">None</span>, <span class="kw">_</span>) =&gt; <span class="bool-val">false</span>,
+            (<span class="kw">_</span>, <span class="prelude-val">Ok</span>(origin_allowed)) =&gt; origin_allowed,
+            (<span class="kw">_</span>, <span class="prelude-val">Err</span>(err)) =&gt; {
                 <span class="macro">debug!</span>(<span class="string">&quot;origin validation failed; inner service is not called&quot;</span>);
                 <span class="kw">let </span><span class="kw-2">mut </span>res = req.error_response(err);
 
@@ -458,14 +484,14 @@
 
                 <span class="kw">return </span>ok(res.map_into_right_body()).boxed_local();
             }
-        }
+        };
 
         <span class="kw">let </span>inner = Rc::clone(<span class="kw-2">&amp;</span><span class="self">self</span>.inner);
         <span class="kw">let </span>fut = <span class="self">self</span>.service.call(req);
 
         Box::pin(<span class="kw">async move </span>{
             <span class="kw">let </span>res = fut.<span class="kw">await</span>;
-            <span class="prelude-val">Ok</span>(<span class="self">Self</span>::augment_response(<span class="kw-2">&amp;</span>inner, res<span class="question-mark">?</span>).map_into_left_body())
+            <span class="prelude-val">Ok</span>(<span class="self">Self</span>::augment_response(<span class="kw-2">&amp;</span>inner, origin_allowed, res<span class="question-mark">?</span>).map_into_left_body())
         })
     }
 }