00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023
00024 #include <string>
00025
00026 #include <drizzled/plugin.h>
00027 #include <drizzled/plugin/plugin.h>
00028 #include <drizzled/identifier.h>
00029 #include <drizzled/visibility.h>
00030
00031 namespace drizzled {
00032 namespace plugin {
00033
00034 class DRIZZLED_API Authentication : public Plugin
00035 {
00036 public:
00037 explicit Authentication(std::string name_arg)
00038 : Plugin(name_arg, "Authentication")
00039 {}
00040 virtual bool authenticate(const identifier::User&, const std::string &passwd)= 0;
00041
00042 static bool addPlugin(plugin::Authentication*);
00043 static void removePlugin(plugin::Authentication*);
00044 static bool isAuthenticated(const drizzled::identifier::User&, const std::string &password);
00045 };
00046
00047 }
00048 }
00049