kanidm/docs/v1.1.0-alpha.5/rustdoc/kanidmd_lib/idm/server/trait.IdmServerTransaction.html
2023-03-03 08:21:04 +00:00

34 lines
35 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="API documentation for the Rust `IdmServerTransaction` trait in crate `kanidmd_lib`."><meta name="keywords" content="rust, rustlang, rust-lang, IdmServerTransaction"><title>IdmServerTransaction in kanidmd_lib::idm::server - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-6827029ac823cab7.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../../static.files/light-ebce58d0a40c3431.css"><link rel="stylesheet" disabled href="../../../static.files/dark-f23faae4a2daf9a6.css"><link rel="stylesheet" disabled href="../../../static.files/ayu-8af5e100b21cd173.css"><script id="default-settings" ></script><script src="../../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-c55e1eb52e1886b4.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[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="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../../kanidmd_lib/index.html"><div class="logo-container"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">IdmServerTransaction</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.QsTransactionType">QsTransactionType</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.get_qs_txn">get_qs_txn</a></li><li><a href="#tymethod.get_uat_validator_txn">get_uat_validator_txn</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.check_oauth2_account_uuid_valid">check_oauth2_account_uuid_valid</a></li><li><a href="#method.process_apit_to_identity">process_apit_to_identity</a></li><li><a href="#method.process_uat_to_identity">process_uat_to_identity</a></li><li><a href="#method.validate_and_parse_sync_token_to_ident">validate_and_parse_sync_token_to_ident</a></li><li><a href="#method.validate_and_parse_token_to_ident">validate_and_parse_token_to_ident</a></li><li><a href="#method.validate_and_parse_token_to_token">validate_and_parse_token_to_token</a></li><li><a href="#method.validate_and_parse_token_to_uat">validate_and_parse_token_to_uat</a></li><li><a href="#method.validate_and_parse_uat">validate_and_parse_uat</a></li><li><a href="#method.validate_ldap_session">validate_ldap_session</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In kanidmd_lib::idm::server</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../../index.html">kanidmd_lib</a>::<wbr><a href="../index.html">idm</a>::<wbr><a href="index.html">server</a>::<wbr><a class="trait" href="#">IdmServerTransaction</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../../src/kanidmd_lib/idm/server.rs.html#391-869">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait IdmServerTransaction&lt;'a&gt; {
type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a>: <a class="trait" href="../../server/trait.QueryServerTransaction.html" title="trait kanidmd_lib::server::QueryServerTransaction">QueryServerTransaction</a>&lt;'a&gt;;
fn <a href="#tymethod.get_qs_txn" class="fn">get_qs_txn</a>(&amp;mut self) -&gt; &amp;mut Self::<a class="associatedtype" href="trait.IdmServerTransaction.html#associatedtype.QsTransactionType" title="type kanidmd_lib::idm::server::IdmServerTransaction::QsTransactionType">QsTransactionType</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.get_uat_validator_txn" class="fn">get_uat_validator_txn</a>(&amp;self) -&gt; &amp;JwsValidator;
fn <a href="#method.validate_and_parse_token_to_ident" class="fn">validate_and_parse_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_token_to_uat" class="fn">validate_and_parse_token_to_uat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;UserAuthToken, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_token_to_token" class="fn">validate_and_parse_token_to_token</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.Token.html" title="enum kanidmd_lib::idm::server::Token">Token</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_uat" class="fn">validate_and_parse_uat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;UserAuthToken, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.check_oauth2_account_uuid_valid" class="fn">check_oauth2_account_uuid_valid</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uuid: <a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session_id: <a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent_session_id: <a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iat: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.i64.html">i64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../entry/struct.Entry.html" title="struct kanidmd_lib::entry::Entry">Entry</a>&lt;<a class="struct" href="../../entry/struct.EntrySealed.html" title="struct kanidmd_lib::entry::EntrySealed">EntrySealed</a>, <a class="struct" href="../../entry/struct.EntryCommitted.html" title="struct kanidmd_lib::entry::EntryCommitted">EntryCommitted</a>&gt;&gt;&gt;, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.process_uat_to_identity" class="fn">process_uat_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uat: &amp;UserAuthToken,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.process_apit_to_identity" class="fn">process_apit_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;apit: &amp;ApiToken,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry: <a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="type" href="../../entry/type.EntrySealedCommitted.html" title="type kanidmd_lib::entry::EntrySealedCommitted">EntrySealedCommitted</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_ldap_session" class="fn">validate_ldap_session</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session: &amp;<a class="enum" href="../ldap/enum.LdapSession.html" title="enum kanidmd_lib::idm::ldap::LdapSession">LdapSession</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.validate_and_parse_sync_token_to_ident" class="fn">validate_and_parse_sync_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt; { ... }
}</code></pre></div><h2 id="required-associated-types" class="small-section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><section id="associatedtype.QsTransactionType" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#392">source</a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a>: <a class="trait" href="../../server/trait.QueryServerTransaction.html" title="trait kanidmd_lib::server::QueryServerTransaction">QueryServerTransaction</a>&lt;'a&gt;</h4></section></div><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><section id="tymethod.get_qs_txn" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#394">source</a><h4 class="code-header">fn <a href="#tymethod.get_qs_txn" class="fn">get_qs_txn</a>(&amp;mut self) -&gt; &amp;mut Self::<a class="associatedtype" href="trait.IdmServerTransaction.html#associatedtype.QsTransactionType" title="type kanidmd_lib::idm::server::IdmServerTransaction::QsTransactionType">QsTransactionType</a></h4></section><section id="tymethod.get_uat_validator_txn" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#396">source</a><h4 class="code-header">fn <a href="#tymethod.get_uat_validator_txn" class="fn">get_uat_validator_txn</a>(&amp;self) -&gt; &amp;JwsValidator</h4></section></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.validate_and_parse_token_to_ident" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#406">source</a><h4 class="code-header">fn <a href="#method.validate_and_parse_token_to_ident" class="fn">validate_and_parse_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>This is the preferred method to transform and securely verify a token into
an identity that can be used for operations and access enforcement. This
function <em>is</em> aware of the various classes of tokens that may exist, and can
appropriately check them.</p>
<p>The primary method of verification selection is the use of the KID parameter
that we internally sign with. We can use this to select the appropriate token type
and validation method.</p>
</div></details><section id="method.validate_and_parse_token_to_uat" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#418">source</a><h4 class="code-header">fn <a href="#method.validate_and_parse_token_to_uat" class="fn">validate_and_parse_token_to_uat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;UserAuthToken, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section><section id="method.validate_and_parse_token_to_token" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#433-536">source</a><h4 class="code-header">fn <a href="#method.validate_and_parse_token_to_token" class="fn">validate_and_parse_token_to_token</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.Token.html" title="enum kanidmd_lib::idm::server::Token">Token</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section><section id="method.validate_and_parse_uat" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#538">source</a><h4 class="code-header">fn <a href="#method.validate_and_parse_uat" class="fn">validate_and_parse_uat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;UserAuthToken, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section><section id="method.check_oauth2_account_uuid_valid" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#577-625">source</a><h4 class="code-header">fn <a href="#method.check_oauth2_account_uuid_valid" class="fn">check_oauth2_account_uuid_valid</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;uuid: <a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;session_id: <a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;parent_session_id: <a class="struct" href="../../prelude/struct.Uuid.html" title="struct kanidmd_lib::prelude::Uuid">Uuid</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;iat: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.i64.html">i64</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../../entry/struct.Entry.html" title="struct kanidmd_lib::entry::Entry">Entry</a>&lt;<a class="struct" href="../../entry/struct.EntrySealed.html" title="struct kanidmd_lib::entry::EntrySealed">EntrySealed</a>, <a class="struct" href="../../entry/struct.EntryCommitted.html" title="struct kanidmd_lib::entry::EntryCommitted">EntryCommitted</a>&gt;&gt;&gt;, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section><details class="rustdoc-toggle method-toggle" open><summary><section id="method.process_uat_to_identity" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#639">source</a><h4 class="code-header">fn <a href="#method.process_uat_to_identity" class="fn">process_uat_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;uat: &amp;UserAuthToken,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></summary><div class="docblock"><p>For any event/operation to proceed, we need to attach an identity to the
event for security and access processing. When that event is externally
triggered via one of our various api layers, we process some type of
account token into this identity. In the current server this is the
UserAuthToken. For a UserAuthToken to be provided it MUST have been
cryptographically verified meaning it is now a <em>trusted</em> source of
data that we previously issued.</p>
<p>This is the function that is responsible for converting that UAT into
something we can pin access controls and other limits and references to.
This is why it is the location where validity windows are checked and other
relevant session information is injected.</p>
</div></details><section id="method.process_apit_to_identity" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#702">source</a><h4 class="code-header">fn <a href="#method.process_apit_to_identity" class="fn">process_apit_to_identity</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;apit: &amp;ApiToken,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: <a class="struct" href="https://doc.rust-lang.org/1.67.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="type" href="../../entry/type.EntrySealedCommitted.html" title="type kanidmd_lib::entry::EntrySealedCommitted">EntrySealedCommitted</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section><section id="method.validate_ldap_session" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#727">source</a><h4 class="code-header">fn <a href="#method.validate_ldap_session" class="fn">validate_ldap_session</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;session: &amp;<a class="enum" href="../ldap/enum.LdapSession.html" title="enum kanidmd_lib::idm::ldap::LdapSession">LdapSession</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section><section id="method.validate_and_parse_sync_token_to_ident" class="method has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#787">source</a><h4 class="code-header">fn <a href="#method.validate_and_parse_sync_token_to_ident" class="fn">validate_and_parse_sync_token_to_ident</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;token: <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;ct: <a class="struct" href="../../prelude/struct.Duration.html" title="struct kanidmd_lib::prelude::Duration">Duration</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.67.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../server/identity/struct.Identity.html" title="struct kanidmd_lib::server::identity::Identity">Identity</a>, <a class="enum" href="../../prelude/enum.OperationError.html" title="enum kanidmd_lib::prelude::OperationError">OperationError</a>&gt;</h4></section></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IdmServerTransaction%3C%27a%3E-for-IdmServerAuthTransaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#871-881">source</a><a href="#impl-IdmServerTransaction%3C%27a%3E-for-IdmServerAuthTransaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.IdmServerTransaction.html" title="trait kanidmd_lib::idm::server::IdmServerTransaction">IdmServerTransaction</a>&lt;'a&gt; for <a class="struct" href="struct.IdmServerAuthTransaction.html" title="struct kanidmd_lib::idm::server::IdmServerAuthTransaction">IdmServerAuthTransaction</a>&lt;'a&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.QsTransactionType-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.QsTransactionType-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a> = <a class="struct" href="../../server/struct.QueryServerReadTransaction.html" title="struct kanidmd_lib::server::QueryServerReadTransaction">QueryServerReadTransaction</a>&lt;'a&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyReadTransaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#1419-1429">source</a><a href="#impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyReadTransaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.IdmServerTransaction.html" title="trait kanidmd_lib::idm::server::IdmServerTransaction">IdmServerTransaction</a>&lt;'a&gt; for <a class="struct" href="struct.IdmServerProxyReadTransaction.html" title="struct kanidmd_lib::idm::server::IdmServerProxyReadTransaction">IdmServerProxyReadTransaction</a>&lt;'a&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.QsTransactionType-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.QsTransactionType-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a> = <a class="struct" href="../../server/struct.QueryServerReadTransaction.html" title="struct kanidmd_lib::server::QueryServerReadTransaction">QueryServerReadTransaction</a>&lt;'a&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyWriteTransaction%3C%27a%3E" class="impl has-srclink"><a class="srclink rightside" href="../../../src/kanidmd_lib/idm/server.rs.html#1522-1532">source</a><a href="#impl-IdmServerTransaction%3C%27a%3E-for-IdmServerProxyWriteTransaction%3C%27a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="trait.IdmServerTransaction.html" title="trait kanidmd_lib::idm::server::IdmServerTransaction">IdmServerTransaction</a>&lt;'a&gt; for <a class="struct" href="struct.IdmServerProxyWriteTransaction.html" title="struct kanidmd_lib::idm::server::IdmServerProxyWriteTransaction">IdmServerProxyWriteTransaction</a>&lt;'a&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.QsTransactionType-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.QsTransactionType-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.QsTransactionType" class="associatedtype">QsTransactionType</a> = <a class="struct" href="../../server/struct.QueryServerWriteTransaction.html" title="struct kanidmd_lib::server::QueryServerWriteTransaction">QueryServerWriteTransaction</a>&lt;'a&gt;</h4></section></div></details></div><script src="../../../implementors/kanidmd_lib/idm/server/trait.IdmServerTransaction.js" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="kanidmd_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>