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