Kea  1.9.9-git
basic_auth.h
Go to the documentation of this file.
1 // Copyright (C) 2020 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef BASIC_HTTP_AUTH_H
8 #define BASIC_HTTP_AUTH_H
9 
10 #include <http/header_context.h>
11 #include <exceptions/exceptions.h>
12 #include <boost/shared_ptr.hpp>
13 #include <unordered_set>
14 
15 namespace isc {
16 namespace http {
17 
22 public:
23 
29  BasicHttpAuth(const std::string& user, const std::string& password);
30 
35  BasicHttpAuth(const std::string& secret);
36 
38  const std::string& getSecret() const {
39  return (secret_);
40  }
41 
43  const std::string& getCredential() const {
44  return (credential_);
45  }
46 
47 private:
48 
50  void buildSecret();
51 
53  void buildCredential();
54 
56  std::string user_;
57 
59  std::string password_;
60 
62  std::string secret_;
63 
66  std::string credential_;
67 };
68 
70 typedef boost::shared_ptr<BasicHttpAuth> BasicHttpAuthPtr;
71 
74 
78  explicit BasicAuthHttpHeaderContext(const BasicHttpAuth& basic_auth)
79  : HttpHeaderContext("Authorization",
80  "Basic " + basic_auth.getCredential()) {
81  }
82 };
83 
84 } // end of namespace isc::http
85 } // end of namespace isc
86 
87 #endif // endif BASIC_HTTP_AUTH_H
Represents a basic HTTP authentication.
Definition: basic_auth.h:21
Represents basic HTTP authentication header.
Definition: basic_auth.h:73
BasicAuthHttpHeaderContext(const BasicHttpAuth &basic_auth)
Constructor.
Definition: basic_auth.h:78
const std::string & getCredential() const
Returns the credential (base64 of the UTF-8 secret).
Definition: basic_auth.h:43
Defines the logger used by the top-level component of kea-dhcp-ddns.
const std::string & getSecret() const
Returns the secret.
Definition: basic_auth.h:38
boost::shared_ptr< BasicHttpAuth > BasicHttpAuthPtr
Type of pointers to basic HTTP authentication objects.
Definition: basic_auth.h:70
HTTP header context.
BasicHttpAuth(const std::string &user, const std::string &password)
Constructor.
Definition: basic_auth.cc:19