4#ifndef DMLITE_CPP_AUTHN_H
5#define DMLITE_CPP_AUTHN_H
7#include "dmlite/common/config.h"
79 std::vector<GroupInfo>& g):
90 for (std::vector<GroupInfo>::iterator i =
groups.begin(); i !=
groups.end(); i++) {
91 if (r.length()) r.append(
",");
93 r.append(
SSTR( i->name <<
"(" << i->getLong(
"gid", -1) <<
"," << i->getLong(
"banned", 0) <<
")") );
161 const boost::any& value) ;
190 const boost::any& value) ;
210 const std::vector<std::string>& groupNames,
212 std::vector<GroupInfo>* groups) ;
AuthnFactory.
Definition: authn.h:217
virtual Authn * createAuthn(PluginManager *pm)
Instantiate a implementation of Authn.
static Authn * createAuthn(AuthnFactory *factory, PluginManager *pm)
Children of AuthnFactory are allowed to instantiate too (decorator)
virtual ~AuthnFactory()
Destructor.
virtual UserInfo getUser(const std::string &userName)
virtual void updateGroup(const GroupInfo &group)
virtual void updateUser(const UserInfo &user)
virtual SecurityContext * createSecurityContext(const SecurityCredentials &cred)
virtual std::vector< GroupInfo > getGroups(void)
Get the group list.
virtual void deleteGroup(const std::string &groupName)
Delete a group.
virtual GroupInfo getGroup(const std::string &groupName)
virtual void getIdMap(const std::string &userName, const std::vector< std::string > &groupNames, UserInfo *user, std::vector< GroupInfo > *groups)
virtual UserInfo newUser(const std::string &userName)
virtual void deleteUser(const std::string &userName)
Delete a user.
virtual ~Authn()
Destructor.
virtual std::string getImplId(void) const =0
String ID of the user DB implementation.
virtual std::vector< UserInfo > getUsers(void)
Get the user list.
virtual GroupInfo newGroup(const std::string &groupName)
virtual GroupInfo getGroup(const std::string &key, const boost::any &value)
virtual SecurityContext * createSecurityContext(void)
virtual UserInfo getUser(const std::string &key, const boost::any &value)
Base class for factories.
Definition: base.h:48
Helpful typedef for KeyValue containers.
Definition: extensible.h:20
long getLong(const std::string &key, long defaultValue=0) const
Gets an integer. May be able to perform some conversions.
bool operator!=(const GroupInfo &) const
bool operator<(const GroupInfo &) const
bool operator>(const GroupInfo &) const
bool operator==(const GroupInfo &) const
std::string name
Definition: authn.h:63
CatalogInterface can only be instantiated through this class.
Definition: dmlite.h:42
Security context. To be created by the Authn.
Definition: authn.h:73
bool operator>(const SecurityContext &) const
bool operator==(const SecurityContext &) const
SecurityCredentials credentials
Definition: authn.h:82
std::string AuthNprocessing_msg
Definition: authn.h:104
bool operator<(const SecurityContext &) const
const std::string prettystring()
Definition: authn.h:87
void AuthNprocessing_append(const char *str)
Definition: authn.h:107
SecurityContext()
Definition: authn.h:75
UserInfo user
Definition: authn.h:84
bool operator!=(const SecurityContext &) const
SecurityContext(const SecurityCredentials &c, const UserInfo &u, std::vector< GroupInfo > &g)
Definition: authn.h:77
std::vector< GroupInfo > groups
Definition: authn.h:85
Security credentials. To be filled by the front-end.
Definition: authn.h:23
std::vector< std::string > fqans
Definition: authn.h:35
bool operator<(const SecurityCredentials &) const
std::string oidc_issuer
Definition: authn.h:32
std::string remoteAddress
Definition: authn.h:27
bool operator==(const SecurityCredentials &) const
std::string oidc_scope
Definition: authn.h:33
std::string oidc_audience
Definition: authn.h:31
std::string clientName
Definition: authn.h:26
std::string mech
Definition: authn.h:25
std::string sessionId
Definition: authn.h:28
bool operator!=(const SecurityCredentials &) const
bool operator>(const SecurityCredentials &) const
bool operator!=(const UserInfo &) const
bool operator==(const UserInfo &) const
bool operator>(const UserInfo &) const
bool operator<(const UserInfo &) const
std::string name
Definition: authn.h:51
Exceptions used by the API.
Extensible types (hold metadata).
#define SSTR(message)
Definition: logger.h:51
Namespace for the dmlite C++ API.
Definition: authn.h:16