XRootD
XrdMacaroonsAuthz.hh
Go to the documentation of this file.
3 #include "XrdSys/XrdSysError.hh"
4 
5 namespace Macaroons {
6 
7 class Authz final : public XrdAccAuthorize, public XrdSciTokensHelper
8 {
9 public:
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 
43 private:
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
Definition: XrdAccPrivs.hh:39
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
std::vector< ValidIssuer > Issuers