Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Auth/Interceptor.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4
6
7namespace Stroika::Frameworks::Auth {
8
9 /*
10 ********************************************************************************
11 ***************** Auth::CurrentIdentityAuthInterceptor *************************
12 ********************************************************************************
13 */
14 template <IIdentityManagerCompatibleID ID_TYPE>
15 struct CurrentIdentityAuthInterceptor<ID_TYPE>::Rep_ : Interceptor::_IRep {
16 function<ID_TYPE (WebServer::Request&)> fCallback_;
17
18 Rep_ (function<ID_TYPE (WebServer::Request&)> cb)
19 : fCallback_{cb}
20 {
21 }
22 virtual void HandleFault ([[maybe_unused]] WebServer::Message& m, [[maybe_unused]] const exception_ptr& e) const noexcept override
23 {
24 CurrentIdentityManager<ID_TYPE>::clear ();
25 }
26 virtual void HandleMessage (WebServer::Message& m) const override
27 {
28 if (auto oId = fCallback_ (m.rwRequest ())) {
30 }
31 }
32 virtual void CompleteNormally ([[maybe_unused]] WebServer::Message& m) const override
33 {
34 CurrentIdentityManager<ID_TYPE>::clear ();
35 }
36 virtual Characters::String ToString () const override
37 {
38 return "CurrentIdentityAuthInterceptor"sv;
39 }
40 };
41 template <IIdentityManagerCompatibleID ID_TYPE>
42 CurrentIdentityAuthInterceptor<ID_TYPE>::CurrentIdentityAuthInterceptor (function<ID_TYPE (WebServer::Request&)> cb)
43 : inherited{make_shared<Rep_> (cb)}
44 {
45 }
46
47}
nonvirtual void HandleFault(Message &m, const exception_ptr &e) const noexcept
nonvirtual void HandleMessage(Message &m) const
static void Set(IDType id)
if no identity set with Establish, and maybe even if it has been set, Get() == false