libzypp  15.28.6
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)
39  : _username(username), _password(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 
59  virtual std::ostream & dumpOn( std::ostream & str ) const;
60 
61  virtual std::ostream & dumpAsIniOn( std::ostream & str ) const;
62 
63 private:
65  std::string _username;
66  std::string _password;
67 };
68 
69 typedef shared_ptr<AuthData> AuthData_Ptr;
70 
74 class CurlAuthData : public AuthData {
75 public:
80  CurlAuthData();
81 
82  CurlAuthData(const AuthData & authData);
83 
84  CurlAuthData(std::string & username, std::string & password, std::string & auth_type)
85  : AuthData(username,password), _auth_type_str(auth_type)
86  {
87  _auth_type = auth_type_str2long(auth_type);
88  }
89 
90  CurlAuthData(std::string & username, std::string & password, long auth_type)
91  : AuthData(username,password), _auth_type(auth_type)
92  {
94  }
95 
101  virtual bool valid() const;
102 
107  void setAuthType(std::string auth_type)
108  {
109  _auth_type_str = auth_type; _auth_type = auth_type_str2long(auth_type);
110  }
111 
112  /*
113  * Set HTTP authentication type(s) to use.
114  * \param HTTP authentication type as in long ORed form.
115  * \see curl.h for available auth types
116  */
117  void setAuthType(long auth_type)
118  {
119  _auth_type = auth_type;
120  _auth_type_str = auth_type_long2str(auth_type);
121  }
122 
123  long authType() { return _auth_type; } const
124  std::string authTypeAsString() { return _auth_type_str; } const
125 
126  std::string getUserPwd() const { return username() + ":" + password(); }
127 
128 
138  static long auth_type_str2long(std::string & auth_type_str);
139 
144  static std::string auth_type_long2str(long auth_type);
145 
146  virtual std::ostream & dumpOn( std::ostream & str ) const;
147 
148 private:
149  std::string _auth_type_str;
151 };
152 
153 typedef shared_ptr<CurlAuthData> CurlAuthData_Ptr;
154 
155 std::ostream & operator << (std::ostream & str, const AuthData & auth_data);
156 std::ostream & operator << (std::ostream & str, const CurlAuthData & auth_data);
157 
159 
160  } // namespace media
161 } // namespace zypp
162 
163 #endif // ZYPP_MEDIA_USER_AUTH_H
void setPassword(const std::string &password)
Definition: MediaUserAuth.h:53
void setAuthType(std::string auth_type)
Set HTTP authentication type(s) to use.
void setAuthType(long auth_type)
const std::string authTypeAsString()
virtual bool valid() const
Checks validity of authentication data.
std::ostream & operator<<(std::ostream &str, const MediaAccess &obj)
Definition: MediaAccess.cc:482
void setUrl(const Url &url)
Definition: MediaUserAuth.h:51
std::string username() const
Definition: MediaUserAuth.h:56
const std::string getUserPwd() const
Provides API related macros.
CurlAuthData(std::string &username, std::string &password, std::string &auth_type)
Definition: MediaUserAuth.h:84
virtual std::ostream & dumpOn(std::ostream &str) const
virtual std::ostream & dumpAsIniOn(std::ostream &str) const
CurlAuthData()
Default constructor.
shared_ptr< CurlAuthData > CurlAuthData_Ptr
Class for handling media authentication data.
Definition: MediaUserAuth.h:30
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...
shared_ptr< AuthData > AuthData_Ptr
Definition: MediaUserAuth.h:69
CurlAuthData(std::string &username, std::string &password, long auth_type)
Definition: MediaUserAuth.h:90
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_* ...
virtual std::ostream & dumpOn(std::ostream &str) const
virtual bool valid() const
Checks validity of authentication data.
std::string password() const
Definition: MediaUserAuth.h:57
AuthData(const std::string &username, const std::string &password)
Definition: MediaUserAuth.h:38
void setUsername(const std::string &username)
Definition: MediaUserAuth.h:52
Curl HTTP authentication data.
Definition: MediaUserAuth.h:74
Url manipulation class.
Definition: Url.h:87