/usr/include/arc/communication/ClientSAML2SSO.h is in nordugrid-arc-dev 4.2.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | // -*- indent-tabs-mode: nil -*-
#ifndef __ARC_CLIENTSAML2SSO_H__
#define __ARC_CLIENTSAML2SSO_H__
#include <string>
#include <list>
#include <inttypes.h>
#include <arc/ArcConfig.h>
#include <arc/URL.h>
#include <arc/message/MCC_Status.h>
#include <arc/message/PayloadRaw.h>
#include <arc/message/PayloadSOAP.h>
#include <arc/communication/ClientInterface.h>
namespace Arc {
class ClientHTTPwithSAML2SSO {
public:
/** Constructor creates MCC chain and connects to server. */
ClientHTTPwithSAML2SSO() : http_client_(NULL), authn_(false) {}
ClientHTTPwithSAML2SSO(const BaseConfig& cfg, const URL& url);
virtual ~ClientHTTPwithSAML2SSO();
/** Send HTTP request and receive response. */
MCC_Status process(const std::string& method, PayloadRawInterface *request,
HTTPClientInfo *info, PayloadRawInterface **response,
const std::string& idp_name, const std::string& username,
const std::string& password, const bool reuse_authn = false);
MCC_Status process(const std::string& method, const std::string& path,
PayloadRawInterface *request,
HTTPClientInfo *info, PayloadRawInterface **response,
const std::string& idp_name, const std::string& username,
const std::string& password, const bool reuse_authn = false);
private:
ClientHTTP *http_client_;
bool authn_;
//Credential and trusted certificates used to contact IdP
std::string cert_file_;
std::string privkey_file_;
std::string ca_file_;
std::string ca_dir_;
static Logger logger;
std::string cookie;
};
class ClientSOAPwithSAML2SSO {
public:
/** Constructor creates MCC chain and connects to server.*/
ClientSOAPwithSAML2SSO() : soap_client_(NULL), authn_(false) {}
ClientSOAPwithSAML2SSO(const BaseConfig& cfg, const URL& url);
virtual ~ClientSOAPwithSAML2SSO();
/** Send SOAP request and receive response. */
MCC_Status process(PayloadSOAP *request, PayloadSOAP **response,
const std::string& idp_name, const std::string& username,
const std::string& password, const bool reuse_authn = false);
/** Send SOAP request with specified SOAP action and receive response. */
MCC_Status process(const std::string& action,
PayloadSOAP *request, PayloadSOAP **response,
const std::string& idp_name, const std::string& username,
const std::string& password, const bool reuse_authn = false);
private:
ClientSOAP *soap_client_;
bool authn_;
//Credential and trusted certificates used to contact IdP
std::string cert_file_;
std::string privkey_file_;
std::string ca_file_;
std::string ca_dir_;
static Logger logger;
std::string cookie;
};
} // namespace Arc
#endif // __ARC_CLIENTSAML2SSO_H__
|