libzypp  17.25.2
MediaUserAuth.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_MEDIA_USER_AUTH_H
13 #define ZYPP_MEDIA_USER_AUTH_H
14 
15 #include <zypp/APIConfig.h>
16 
17 #include <zypp/Url.h>
18 #include <zypp/base/PtrTypes.h>
19 
20 namespace zypp {
21  namespace media {
22 
24 
25 
30 class AuthData
31 {
32 public:
34  {}
35 
36  AuthData(const Url & url);
37 
38  AuthData(const std::string & username, const std::string & password)
40  {}
41 
42  virtual ~AuthData() {};
43 
49  virtual bool valid() const;
50 
51  void setUrl(const Url & url) { _url = url; }
52  void setUsername(const std::string & username) { _username = username; }
53  void setPassword(const std::string & password) { _password = password; }
54 
55  Url url() const { return _url; }
56  std::string username() const { return _username; }
57  std::string password() const { return _password; }
58 
63  time_t lastDatabaseUpdate () const;
64  void setLastDatabaseUpdate ( time_t time );
65 
66  virtual std::ostream & dumpOn( std::ostream & str ) const;
67 
68  virtual std::ostream & dumpAsIniOn( std::ostream & str ) const;
69 
70 private:
72  std::string _username;
73  std::string _password;
74  time_t _lastChange; //< timestamp of the last change to the database this credential is stored in
75 };
76 
77 typedef shared_ptr<AuthData> AuthData_Ptr;
78 
82 class CurlAuthData : public AuthData {
83 public:
88  CurlAuthData();
89 
90  CurlAuthData(const AuthData & authData);
91 
92  CurlAuthData(std::string & username, std::string & password, std::string & auth_type)
94  {
95  _auth_type = auth_type_str2long(auth_type);
96  }
97 
98  CurlAuthData(std::string & username, std::string & password, long auth_type)
99  : AuthData(username,password), _auth_type(auth_type)
100  {
101  _auth_type_str = auth_type_long2str(auth_type);
102  }
103 
109  virtual bool valid() const;
110 
115  void setAuthType(std::string auth_type)
116  {
117  _auth_type_str = auth_type; _auth_type = auth_type_str2long(auth_type);
118  }
119 
120  /*
121  * Set HTTP authentication type(s) to use.
122  * \param HTTP authentication type as in long ORed form.
123  * \see curl.h for available auth types
124  */
125  void setAuthType(long auth_type)
126  {
127  _auth_type = auth_type;
128  _auth_type_str = auth_type_long2str(auth_type);
129  }
130 
131  long authType() const { return _auth_type; }
132  std::string authTypeAsString() const { return _auth_type_str; }
133 
134  std::string getUserPwd() const { return username() + ":" + password(); }
135 
136 
146  static long auth_type_str2long( std::string & auth_type_str );
147  static long auth_type_str2long( const std::string &auth_type_str );
148 
153  static std::string auth_type_long2str(long auth_type);
154 
155  virtual std::ostream & dumpOn( std::ostream & str ) const;
156 
157 private:
158  std::string _auth_type_str;
160 };
161 
162 typedef shared_ptr<CurlAuthData> CurlAuthData_Ptr;
163 
164 std::ostream & operator << (std::ostream & str, const AuthData & auth_data);
165 std::ostream & operator << (std::ostream & str, const CurlAuthData & auth_data);
166 
168 
169  } // namespace media
170 } // namespace zypp
171 
172 #endif // ZYPP_MEDIA_USER_AUTH_H
zypp::media::AuthData
Class for handling media authentication data.
Definition: MediaUserAuth.h:31
zypp::media::CurlAuthData::setAuthType
void setAuthType(std::string auth_type)
Set HTTP authentication type(s) to use.
Definition: MediaUserAuth.h:115
zypp::media::CurlAuthData::setAuthType
void setAuthType(long auth_type)
Definition: MediaUserAuth.h:125
zypp::media::CurlAuthData::getUserPwd
std::string getUserPwd() const
Definition: MediaUserAuth.h:134
zypp::media::AuthData::valid
virtual bool valid() const
Checks validity of authentication data.
Definition: MediaUserAuth.cc:36
zypp::media::AuthData::_url
Url _url
Definition: MediaUserAuth.h:71
zypp::media::CurlAuthData::_auth_type
long _auth_type
Definition: MediaUserAuth.h:159
zypp::media::AuthData::url
Url url() const
Definition: MediaUserAuth.h:55
zypp::media::CurlAuthData::authTypeAsString
std::string authTypeAsString() const
Definition: MediaUserAuth.h:132
PtrTypes.h
zypp::media::AuthData::setUrl
void setUrl(const Url &url)
Definition: MediaUserAuth.h:51
zypp::media::AuthData::_lastChange
time_t _lastChange
Definition: MediaUserAuth.h:74
zypp::media::AuthData::lastDatabaseUpdate
time_t lastDatabaseUpdate() const
Definition: MediaUserAuth.cc:41
zypp::media::operator<<
std::ostream & operator<<(std::ostream &str, const MediaAccess &obj)
Definition: MediaAccess.cc:510
Url.h
zypp::media::AuthData::_password
std::string _password
Definition: MediaUserAuth.h:73
zypp::media::CurlAuthData::CurlAuthData
CurlAuthData(std::string &username, std::string &password, std::string &auth_type)
Definition: MediaUserAuth.h:92
zypp::media::AuthData::dumpOn
virtual std::ostream & dumpOn(std::ostream &str) const
Definition: MediaUserAuth.cc:51
zypp::media::AuthData::username
std::string username() const
Definition: MediaUserAuth.h:56
zypp::media::AuthData::_username
std::string _username
Definition: MediaUserAuth.h:72
zypp::media::CurlAuthData_Ptr
shared_ptr< CurlAuthData > CurlAuthData_Ptr
Definition: MediaUserAuth.h:162
zypp::media::CurlAuthData::dumpOn
virtual std::ostream & dumpOn(std::ostream &str) const
Definition: MediaUserAuth.cc:96
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
zypp::media::AuthData::setUsername
void setUsername(const std::string &username)
Definition: MediaUserAuth.h:52
zypp::media::CurlAuthData::authType
long authType() const
Definition: MediaUserAuth.h:131
zypp::media::AuthData::setPassword
void setPassword(const std::string &password)
Definition: MediaUserAuth.h:53
zypp::media::CurlAuthData::auth_type_long2str
static std::string auth_type_long2str(long auth_type)
Converts a long of ORed CURLAUTH_* identifiers into a string of comma separated list of authenticatio...
Definition: MediaUserAuth.cc:157
zypp::media::AuthData::AuthData
AuthData(const std::string &username, const std::string &password)
Definition: MediaUserAuth.h:38
zypp::media::CurlAuthData::CurlAuthData
CurlAuthData()
Default constructor.
Definition: MediaUserAuth.cc:79
zypp::media::AuthData::setLastDatabaseUpdate
void setLastDatabaseUpdate(time_t time)
Definition: MediaUserAuth.cc:46
zypp::media::CurlAuthData
Curl HTTP authentication data.
Definition: MediaUserAuth.h:82
zypp::media::CurlAuthData::CurlAuthData
CurlAuthData(std::string &username, std::string &password, long auth_type)
Definition: MediaUserAuth.h:98
zypp::media::AuthData_Ptr
shared_ptr< AuthData > AuthData_Ptr
Definition: MediaUserAuth.h:77
zypp::media::AuthData::dumpAsIniOn
virtual std::ostream & dumpAsIniOn(std::ostream &str) const
Definition: MediaUserAuth.cc:62
zypp::media::AuthData::password
std::string password() const
Definition: MediaUserAuth.h:57
zypp::media::CurlAuthData::auth_type_str2long
static long auth_type_str2long(std::string &auth_type_str)
Converts a string of comma separated list of authetication type names into a long of ORed CURLAUTH_* ...
Definition: MediaUserAuth.cc:103
str
String related utilities and Regular expression matching.
zypp::media::AuthData::AuthData
AuthData()
Definition: MediaUserAuth.h:33
zypp::media::CurlAuthData::valid
virtual bool valid() const
Checks validity of authentication data.
Definition: MediaUserAuth.cc:91
zypp::Url
Url manipulation class.
Definition: Url.h:88
zypp::media::CurlAuthData::_auth_type_str
std::string _auth_type_str
Definition: MediaUserAuth.h:158
zypp::media::AuthData::~AuthData
virtual ~AuthData()
Definition: MediaUserAuth.h:42