reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
ReproAuthenticatorFactory.hxx
Go to the documentation of this file.
1#if !defined(RESIP_REPROAUTHENTICATORFACTORY_HXX)
2#define RESIP_REPROAUTHENTICATORFACTORY_HXX
3
4#include <memory>
5#include <set>
6#include <vector>
7
8#include "rutil/Data.hxx"
15#include "ProxyConfig.hxx"
16
17namespace repro
18{
19
21{
22public:
25
26 virtual void setDum(resip::DialogUsageManager* dum) { mDum = dum; };
27
28 virtual bool certificateAuthEnabled() { return mEnableCertAuth; };
29
30 virtual std::shared_ptr<resip::DumFeature> getCertificateAuthManager();
31 virtual std::unique_ptr<Processor> getCertificateAuthenticator();
32
33 virtual bool digestAuthEnabled() { return mEnableDigestAuth; };
34
35 virtual std::shared_ptr<resip::ServerAuthManager> getServerAuthManager();
36 virtual std::unique_ptr<Processor> getDigestAuthenticator();
37
39
40private:
41 void init();
42 void loadCommonNameMappings();
43
44 ProxyConfig& mProxyConfig;
45 resip::SipStack& mSipStack;
47
48 bool mEnableCertAuth;
49 bool mEnableDigestAuth;
50 bool mEnableRADIUS;
51
52 resip::Data mRADIUSConfiguration;
53
54 resip::Data mStaticRealm;
55
56 // Maintains existing behavior for non-TLS cert auth users
57 bool mDigestChallengeThirdParties;
58
59 std::vector<resip::DigestType> mChallengeDigestTypes;
60
61 resip::CommonNameMappings mCommonNameMappings;
62
63 std::unique_ptr<resip::Dispatcher> mAuthRequestDispatcher;
64
65 std::shared_ptr<resip::DumFeature> mCertificateAuthManager;
66 std::shared_ptr<resip::ServerAuthManager> mServerAuthManager;
67};
68
69}
70
71#endif
72
73/* ====================================================================
74 * BSD License
75 *
76 * Copyright (c) 2026 SIP Spectrum, Inc. https://www.sipspectrum.com
77 * Copyright (c) 2013 Daniel Pocock http://danielpocock.com All rights reserved.
78 *
79 * Redistribution and use in source and binary forms, with or without
80 * modification, are permitted provided that the following conditions
81 * are met:
82 *
83 * 1. Redistributions of source code must retain the above copyright
84 * notice, this list of conditions and the following disclaimer.
85 *
86 * 2. Redistributions in binary form must reproduce the above copyright
87 * notice, this list of conditions and the following disclaimer in
88 * the documentation and/or other materials provided with the
89 * distribution.
90 *
91 * 3. Neither the name of the author(s) nor the names of any contributors
92 * may be used to endorse or promote products derived from this software
93 * without specific prior written permission.
94 *
95 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTORS "AS IS" AND
96 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
97 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
98 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTORS BE LIABLE
99 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
100 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
101 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
102 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
103 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
104 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
105 * SUCH DAMAGE.
106 *
107 * ====================================================================
108 *
109 */
110
virtual std::shared_ptr< resip::DumFeature > getCertificateAuthManager()
virtual resip::Dispatcher * getDispatcher()
virtual std::shared_ptr< resip::ServerAuthManager > getServerAuthManager()
virtual std::unique_ptr< Processor > getCertificateAuthenticator()
virtual void setDum(resip::DialogUsageManager *dum)
virtual std::unique_ptr< Processor > getDigestAuthenticator()
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
A generic thread-bank class.
This is the primary point of interaction between the app-layer and the stack.
Definition SipStack.hxx:160
This Class is used to implement a primitive form of RPC using loose XML formatting.
std::map< Data, PermittedFromAddresses > CommonNameMappings
void list()
Definition userAdmin.cxx:66