mirror of
https://github.com/actix/actix-extras.git
synced 2025-09-01 20:47:22 +02:00
Deploying to gh-pages from @ 8741cd32cc
🚀
This commit is contained in:
@@ -156,18 +156,18 @@
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! Extractor for the "Basic" HTTP Authentication Scheme</span>
|
||||
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::<span class="ident">Cow</span>;
|
||||
<span class="kw">use</span> <span class="ident">std::borrow::Cow</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">actix_web</span>::<span class="ident">dev</span>::{<span class="ident">Payload</span>, <span class="ident">ServiceRequest</span>};
|
||||
<span class="kw">use</span> <span class="ident">actix_web</span>::<span class="ident">http</span>::<span class="ident">header</span>::<span class="ident">Header</span>;
|
||||
<span class="kw">use</span> <span class="ident">actix_web::dev</span>::{<span class="ident">Payload</span>, <span class="ident">ServiceRequest</span>};
|
||||
<span class="kw">use</span> <span class="ident">actix_web::http::header::Header</span>;
|
||||
<span class="kw">use</span> <span class="ident">actix_web</span>::{<span class="ident">FromRequest</span>, <span class="ident">HttpRequest</span>};
|
||||
<span class="kw">use</span> <span class="ident">futures_util</span>::<span class="ident">future</span>::{<span class="ident">ready</span>, <span class="ident">Ready</span>};
|
||||
<span class="kw">use</span> <span class="ident">futures_util::future</span>::{<span class="ident">ready</span>, <span class="ident">Ready</span>};
|
||||
|
||||
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">config</span>::<span class="ident">AuthExtractorConfig</span>;
|
||||
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">errors</span>::<span class="ident">AuthenticationError</span>;
|
||||
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">AuthExtractor</span>;
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">headers</span>::<span class="ident">authorization</span>::{<span class="ident">Authorization</span>, <span class="ident">Basic</span>};
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">headers</span>::<span class="ident">www_authenticate</span>::<span class="ident">basic</span>::<span class="ident">Basic</span> <span class="kw">as</span> <span class="ident">Challenge</span>;
|
||||
<span class="kw">use</span> <span class="kw">super</span><span class="ident">::config::AuthExtractorConfig</span>;
|
||||
<span class="kw">use</span> <span class="kw">super</span><span class="ident">::errors::AuthenticationError</span>;
|
||||
<span class="kw">use</span> <span class="kw">super</span><span class="ident">::AuthExtractor</span>;
|
||||
<span class="kw">use</span> <span class="kw">crate</span><span class="ident">::headers::authorization</span>::{<span class="ident">Authorization</span>, <span class="ident">Basic</span>};
|
||||
<span class="kw">use</span> <span class="kw">crate</span><span class="ident">::headers::www_authenticate::basic::Basic</span> <span class="kw">as</span> <span class="ident">Challenge</span>;
|
||||
|
||||
<span class="doccomment">/// [`BasicAuth`] extractor configuration,</span>
|
||||
<span class="doccomment">/// used for [`WWW-Authenticate`] header later.</span>
|
||||
@@ -201,13 +201,13 @@
|
||||
<span class="kw">impl</span> <span class="ident">AuthExtractorConfig</span> <span class="kw">for</span> <span class="ident">Config</span> {
|
||||
<span class="kw">type</span> <span class="ident">Inner</span> <span class="op">=</span> <span class="ident">Challenge</span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">into_inner</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Inner</span> {
|
||||
<span class="kw">fn</span> <span class="ident">into_inner</span>(<span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span><span class="ident">::Inner</span> {
|
||||
<span class="self">self</span>.<span class="number">0</span>
|
||||
}
|
||||
}
|
||||
|
||||
<span class="comment">// Needs `fn main` to display complete example.</span>
|
||||
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">clippy</span>::<span class="ident">needless_doctest_main</span>)]</span>
|
||||
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">clippy::needless_doctest_main</span>)]</span>
|
||||
<span class="doccomment">/// Extractor for HTTP Basic auth.</span>
|
||||
<span class="doccomment">///</span>
|
||||
<span class="doccomment">/// # Example</span>
|
||||
@@ -260,26 +260,26 @@
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">FromRequest</span> <span class="kw">for</span> <span class="ident">BasicAuth</span> {
|
||||
<span class="kw">type</span> <span class="ident">Future</span> <span class="op">=</span> <span class="ident">Ready</span><span class="op"><</span><span class="prelude-ty">Result</span><span class="op"><</span><span class="self">Self</span>, <span class="self">Self</span>::<span class="ident">Error</span><span class="op">></span><span class="op">></span>;
|
||||
<span class="kw">type</span> <span class="ident">Future</span> <span class="op">=</span> <span class="ident">Ready</span><span class="op"><</span><span class="prelude-ty">Result</span><span class="op"><</span><span class="self">Self</span>, <span class="self">Self</span><span class="ident">::Error</span><span class="op">></span><span class="op">></span>;
|
||||
<span class="kw">type</span> <span class="ident">Config</span> <span class="op">=</span> <span class="ident">Config</span>;
|
||||
<span class="kw">type</span> <span class="ident">Error</span> <span class="op">=</span> <span class="ident">AuthenticationError</span><span class="op"><</span><span class="ident">Challenge</span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">from_request</span>(
|
||||
<span class="ident">req</span>: <span class="kw-2">&</span><span class="ident">HttpRequest</span>,
|
||||
<span class="kw">_</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">Payload</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="op"><</span><span class="self">Self</span> <span class="kw">as</span> <span class="ident">FromRequest</span><span class="op">></span>::<span class="ident">Future</span> {
|
||||
) <span class="op">-</span><span class="op">></span> <span class="op"><</span><span class="self">Self</span> <span class="kw">as</span> <span class="ident">FromRequest</span><span class="op">></span><span class="ident">::Future</span> {
|
||||
<span class="ident">ready</span>(
|
||||
<span class="ident">Authorization</span>::<span class="op"><</span><span class="ident">Basic</span><span class="op">></span>::<span class="ident">parse</span>(<span class="ident">req</span>)
|
||||
<span class="ident">Authorization</span>::<span class="op"><</span><span class="ident">Basic</span><span class="op">></span><span class="ident">::parse</span>(<span class="ident">req</span>)
|
||||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">auth</span><span class="op">|</span> <span class="ident">BasicAuth</span>(<span class="ident">auth</span>.<span class="ident">into_scheme</span>()))
|
||||
.<span class="ident">map_err</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> {
|
||||
<span class="comment">// TODO: debug! the original error</span>
|
||||
<span class="kw">let</span> <span class="ident">challenge</span> <span class="op">=</span> <span class="ident">req</span>
|
||||
.<span class="ident">app_data</span>::<span class="op"><</span><span class="self">Self</span>::<span class="ident">Config</span><span class="op">></span>()
|
||||
.<span class="ident">app_data</span>::<span class="op"><</span><span class="self">Self</span><span class="ident">::Config</span><span class="op">></span>()
|
||||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">config</span><span class="op">|</span> <span class="ident">config</span>.<span class="number">0</span>.<span class="ident">clone</span>())
|
||||
<span class="comment">// TODO: Add trace! about `Default::default` call</span>
|
||||
.<span class="ident">unwrap_or_else</span>(<span class="ident">Default</span>::<span class="ident">default</span>);
|
||||
.<span class="ident">unwrap_or_else</span>(<span class="ident">Default::default</span>);
|
||||
|
||||
<span class="ident">AuthenticationError</span>::<span class="ident">new</span>(<span class="ident">challenge</span>)
|
||||
<span class="ident">AuthenticationError::new</span>(<span class="ident">challenge</span>)
|
||||
}),
|
||||
)
|
||||
}
|
||||
@@ -287,11 +287,11 @@
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">AuthExtractor</span> <span class="kw">for</span> <span class="ident">BasicAuth</span> {
|
||||
<span class="kw">type</span> <span class="ident">Error</span> <span class="op">=</span> <span class="ident">AuthenticationError</span><span class="op"><</span><span class="ident">Challenge</span><span class="op">></span>;
|
||||
<span class="kw">type</span> <span class="ident">Future</span> <span class="op">=</span> <span class="ident">Ready</span><span class="op"><</span><span class="prelude-ty">Result</span><span class="op"><</span><span class="self">Self</span>, <span class="self">Self</span>::<span class="ident">Error</span><span class="op">></span><span class="op">></span>;
|
||||
<span class="kw">type</span> <span class="ident">Future</span> <span class="op">=</span> <span class="ident">Ready</span><span class="op"><</span><span class="prelude-ty">Result</span><span class="op"><</span><span class="self">Self</span>, <span class="self">Self</span><span class="ident">::Error</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">from_service_request</span>(<span class="ident">req</span>: <span class="kw-2">&</span><span class="ident">ServiceRequest</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span>::<span class="ident">Future</span> {
|
||||
<span class="kw">fn</span> <span class="ident">from_service_request</span>(<span class="ident">req</span>: <span class="kw-2">&</span><span class="ident">ServiceRequest</span>) <span class="op">-</span><span class="op">></span> <span class="self">Self</span><span class="ident">::Future</span> {
|
||||
<span class="ident">ready</span>(
|
||||
<span class="ident">Authorization</span>::<span class="op"><</span><span class="ident">Basic</span><span class="op">></span>::<span class="ident">parse</span>(<span class="ident">req</span>)
|
||||
<span class="ident">Authorization</span>::<span class="op"><</span><span class="ident">Basic</span><span class="op">></span><span class="ident">::parse</span>(<span class="ident">req</span>)
|
||||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">auth</span><span class="op">|</span> <span class="ident">BasicAuth</span>(<span class="ident">auth</span>.<span class="ident">into_scheme</span>()))
|
||||
.<span class="ident">map_err</span>(<span class="op">|</span><span class="kw">_</span><span class="op">|</span> {
|
||||
<span class="comment">// TODO: debug! the original error</span>
|
||||
@@ -299,9 +299,9 @@
|
||||
.<span class="ident">app_data</span>::<span class="op"><</span><span class="ident">Config</span><span class="op">></span>()
|
||||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">config</span><span class="op">|</span> <span class="ident">config</span>.<span class="number">0</span>.<span class="ident">clone</span>())
|
||||
<span class="comment">// TODO: Add trace! about `Default::default` call</span>
|
||||
.<span class="ident">unwrap_or_else</span>(<span class="ident">Default</span>::<span class="ident">default</span>);
|
||||
.<span class="ident">unwrap_or_else</span>(<span class="ident">Default::default</span>);
|
||||
|
||||
<span class="ident">AuthenticationError</span>::<span class="ident">new</span>(<span class="ident">challenge</span>)
|
||||
<span class="ident">AuthenticationError::new</span>(<span class="ident">challenge</span>)
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user