XRootD
Loading...
Searching...
No Matches
XrdMacaroonsAuthz.hh
Go to the documentation of this file.
4
5namespace Macaroons {
6
7class Authz final : public XrdAccAuthorize, public XrdSciTokensHelper
8{
9public:
10 Authz(XrdSysLogger *lp, const char *parms, XrdAccAuthorize *chain);
11
12 virtual ~Authz() {}
13
14 virtual XrdAccPrivs Access(const XrdSecEntity *Entity,
15 const char *path,
16 const Access_Operation oper,
17 XrdOucEnv *env) override;
18
19 // Do a minimal validation that this is a non-expired token; used
20 // for session tokens.
21 virtual bool Validate(const char *token,
22 std::string &emsg,
23 long long *expT,
24 XrdSecEntity *entP) override;
25
26 virtual int Audit(const int accok, const XrdSecEntity *Entity,
27 const char *path, const Access_Operation oper,
28 XrdOucEnv *Env) override
29 {
30 return 0;
31 }
32
33 virtual int Test(const XrdAccPrivs priv,
34 const Access_Operation oper) override
35 {
36 return 0;
37 }
38
39 // Macaroons don't have a concept off an "issuers"; return an empty
40 // list.
41 virtual Issuers IssuerList() override {return Issuers();}
42
43private:
44 XrdAccPrivs OnMissing(const XrdSecEntity *Entity,
45 const char *path,
46 const Access_Operation oper,
47 XrdOucEnv *env);
48
49 ssize_t m_max_duration;
50 XrdAccAuthorize *m_chain;
51 XrdSysError m_log;
52 std::string m_secret;
53 std::string m_location;
54 int m_authz_behavior;
55};
56
57} // namespace Macaroons
Access_Operation
The following are supported operations.
XrdAccPrivs
int emsg(int rc, char *msg)
virtual bool Validate(const char *token, std::string &emsg, long long *expT, XrdSecEntity *entP) override
virtual int Audit(const int accok, const XrdSecEntity *Entity, const char *path, const Access_Operation oper, XrdOucEnv *Env) override
Authz(XrdSysLogger *lp, const char *parms, XrdAccAuthorize *chain)
virtual int Test(const XrdAccPrivs priv, const Access_Operation oper) override
virtual XrdAccPrivs Access(const XrdSecEntity *Entity, const char *path, const Access_Operation oper, XrdOucEnv *env) override
virtual Issuers IssuerList() override
XrdAccAuthorize()
Constructor.
XrdSciTokensHelper()
Constructor and Destructor.
std::vector< ValidIssuer > Issuers