summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-20 21:14:01 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-20 21:25:03 (GMT)
commitc84fb752cc881dfca9727b69fcdb3230830b7cc4 (patch)
treeede286a20ccf8daf109f2d1b03c610d6d97f9b8a /Swiften/SASL/ClientAuthenticator.h
parent8149107ade43f9c9fff8fe134f1bce5b5e8b2234 (diff)
downloadswift-c84fb752cc881dfca9727b69fcdb3230830b7cc4.zip
swift-c84fb752cc881dfca9727b69fcdb3230830b7cc4.tar.bz2
Abstracting authenticators.
Diffstat (limited to 'Swiften/SASL/ClientAuthenticator.h')
-rw-r--r--Swiften/SASL/ClientAuthenticator.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/Swiften/SASL/ClientAuthenticator.h b/Swiften/SASL/ClientAuthenticator.h
new file mode 100644
index 0000000..f42a51e
--- /dev/null
+++ b/Swiften/SASL/ClientAuthenticator.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include "Swiften/Base/String.h"
+#include "Swiften/Base/ByteArray.h"
+
+namespace Swift {
+ class ClientAuthenticator {
+ public:
+ ClientAuthenticator(const String& name);
+ virtual ~ClientAuthenticator();
+
+ const String& getName() const {
+ return name;
+ }
+
+ void setCredentials(const String& authcid, const String& password, const String& authzid = String()) {
+ this->authcid = authcid;
+ this->password = password;
+ this->authzid = authzid;
+ }
+
+ virtual ByteArray getResponse() const = 0;
+ virtual bool setChallenge(const ByteArray&) = 0;
+
+ const String& getAuthenticationID() const {
+ return authcid;
+ }
+
+ const String& getAuthorizationID() const {
+ return authzid;
+ }
+
+ const String& getPassword() const {
+ return password;
+ }
+
+ private:
+ String name;
+ String authcid;
+ String password;
+ String authzid;
+ };
+}