10 #ifndef __PION_HTTPAUTH_HEADER__
11 #define __PION_HTTPAUTH_HEADER__
14 #include <boost/noncopyable.hpp>
15 #include <boost/shared_ptr.hpp>
16 #include <pion/PionConfig.hpp>
17 #include <pion/PionLogger.hpp>
18 #include <pion/PionException.hpp>
19 #include <pion/net/PionUser.hpp>
20 #include <pion/net/TCPConnection.hpp>
21 #include <pion/net/HTTPRequest.hpp>
31 private boost::noncopyable
39 :
PionException(
"Option not recognized by authentication service: ", name) {}
45 : m_logger(PION_GET_LOGGER(
"pion.net.HTTPAuth")),
46 m_user_manager(userManager)
64 virtual bool handleRequest(HTTPRequestPtr& request, TCPConnectionPtr& tcp_conn) = 0;
72 virtual void setOption(
const std::string& name,
const std::string& value) {
81 void addRestrict(
const std::string& resource);
88 void addPermit(
const std::string& resource);
95 virtual bool addUser(std::string
const &username, std::string
const &password) {
96 return m_user_manager->addUser(username, password);
104 virtual bool updateUser(std::string
const &username, std::string
const &password) {
105 return m_user_manager->updateUser(username, password);
114 return m_user_manager->removeUser(username);
120 virtual PionUserPtr
getUser(std::string
const &username) {
121 return m_user_manager->getUser(username);
136 bool needAuthentication(HTTPRequestPtr
const& http_request)
const;
147 const std::string& resource)
const;
170 typedef boost::shared_ptr<HTTPAuth> HTTPAuthPtr;