24 #ifndef UTILS_DOMETALKER_H 25 #define UTILS_DOMETALKER_H 27 #include <davix/davix.hpp> 31 #include <boost/property_tree/ptree.hpp> 56 for(
size_t i = 0; i < ctx->
groups.size(); i++) {
92 bool execute(
const boost::property_tree::ptree ¶ms);
93 bool execute(
const std::string &str);
94 bool execute(
const std::ostringstream &ss);
97 bool execute(
const std::string &key,
const std::string &value);
100 bool execute(
const std::string &key1,
const std::string &value1,
101 const std::string &key2,
const std::string &value2);
104 bool execute(
const std::string &key1,
const std::string &value1,
105 const std::string &key2,
const std::string &value2,
106 const std::string &key3,
const std::string &value3);
117 const boost::property_tree::ptree&
jresp();
125 for (
int i = 0; i < 12; i++) {
126 if (!strcmp(verb,
reqTypes[i]))
return i;
137 const char *sslclientshortname,
138 const char *sslclientvorg,
139 const char *sslclienthost,
140 const char *sslclientdn,
Definition: DomeTalker.h:72
std::string remoteAddress
Definition: authn.h:25
Definition: DomeTalker.h:85
Definition: DomeTalker.h:70
Definition: DomeTalker.h:73
std::string clientName
The remote user that originated a request. Typically a DN.
Definition: DomeTalker.h:37
const boost::property_tree::ptree & jresp()
std::string name
Definition: authn.h:43
void calcXrdHttpHashes(char *hash, const char *fn, int16_t request, const char *sslclientshortname, const char *sslclientvorg, const char *sslclienthost, const char *sslclientdn, time_t tim, const char *key)
Security context. To be created by the Authn.
Definition: authn.h:64
DomeTalker(DavixCtxPool &pool, const DomeCredentials &creds, std::string uri, std::string verb, std::string cmd)
std::string target_
Definition: DomeTalker.h:154
Definition: DavixPool.h:48
std::string response_
Definition: DomeTalker.h:160
Definition: DomeTalker.h:35
int getXrdHttpReqIndex(const char *verb)
Definition: DomeTalker.h:124
Definition: DomeTalker.h:77
int status_
Definition: DomeTalker.h:163
Authentication API. Any sort of security check is plugin-specific.
Definition: DavixPool.h:90
Definition: DomeTalker.h:68
Definition: DavixPool.h:97
DomeCredentials(std::string cn, std::string ra, std::vector< std::string > gr)
Definition: DomeTalker.h:43
std::vector< GroupInfo > groups
Definition: authn.h:75
UserInfo user
Definition: authn.h:74
DomeHttpCode
Definition: DomeTalker.h:67
DavixCtxPool & pool_
Definition: DomeTalker.h:148
void setcommand(const DomeCredentials &creds, const char *verb, const char *cmd)
Davix::DavixError * err_
Definition: DomeTalker.h:159
std::string remoteAddress
The remote address of the user's machine.
Definition: DomeTalker.h:39
Definition: DomeTalker.h:71
static const char * reqTypes[12]
Definition: DomeTalker.h:123
SecurityCredentials credentials
Definition: authn.h:72
const std::string & response()
std::string clientName
Definition: authn.h:24
std::string uri_
Definition: DomeTalker.h:150
bool parsedJson_
Definition: DomeTalker.h:162
std::string cmd_
Definition: DomeTalker.h:152
std::string verb_
Definition: DomeTalker.h:151
DavixStuff * ds_
Definition: DomeTalker.h:157
Definition: DomeTalker.h:74
DavixGrabber grabber_
Definition: DomeTalker.h:156
DomeCredentials()
Definition: DomeTalker.h:46
Definition: DomeTalker.h:76
int http_status(const DmException &e)
boost::property_tree::ptree json_
Definition: DomeTalker.h:161
Namespace for the dmlite C++ API.
Definition: authn.h:15
int compareXrdHttpHashes(const char *h1, const char *h2)
DomeCredentials creds_
Definition: DomeTalker.h:149
std::vector< std::string > groups
The groups the user belongs to.
Definition: DomeTalker.h:41
DomeCredentials(const SecurityContext *ctx)
Definition: DomeTalker.h:47