Definition at line 357 of file XrdSciTokensAccess.cc.
◆ XrdAccRules()
| XrdAccRules::XrdAccRules |
( |
uint64_t | expiry_time, |
|
|
const std::string & | username, |
|
|
const std::string & | token_subject, |
|
|
const std::string & | issuer, |
|
|
const std::vector< MapRule > & | rules, |
|
|
const std::vector< std::string > & | groups, |
|
|
uint32_t | authz_strategy ) |
|
inline |
Definition at line 360 of file XrdSciTokensAccess.cc.
362 :
363 m_authz_strategy(authz_strategy),
364 m_expiry_time(expiry_time),
365 m_username(username),
366 m_token_subject(token_subject),
367 m_issuer(issuer),
368 m_map_rules(rules),
370 {}
const std::vector< std::string > & groups() const
References groups().
◆ ~XrdAccRules()
| XrdAccRules::~XrdAccRules |
( |
| ) |
|
|
inline |
◆ apply()
Definition at line 374 of file XrdSciTokensAccess.cc.
374 {
375 for (const auto & rule : m_rules) {
376
377 if (rule.first != oper)
378 continue;
379
380
381 if (rule.second == "/")
382 return true;
383
384
386 return true;
387 } else {
388
391 return true;
392 }
393 }
394 return false;
395 }
@ AOP_Stat
exists(), stat()
static bool is_subdirectory(const std::string &dir, const std::string &subdir)
References AOP_Mkdir, AOP_Stat, and is_subdirectory().
◆ expired()
| bool XrdAccRules::expired |
( |
| ) |
const |
|
inline |
◆ get_authz_strategy()
| uint32_t XrdAccRules::get_authz_strategy |
( |
| ) |
const |
|
inline |
◆ get_default_username()
| const std::string & XrdAccRules::get_default_username |
( |
| ) |
const |
|
inline |
◆ get_issuer()
| const std::string & XrdAccRules::get_issuer |
( |
| ) |
const |
|
inline |
◆ get_token_subject()
| const std::string & XrdAccRules::get_token_subject |
( |
| ) |
const |
|
inline |
◆ get_username()
| std::string XrdAccRules::get_username |
( |
const std::string & | req_path | ) |
const |
|
inline |
Definition at line 406 of file XrdSciTokensAccess.cc.
407 {
408 for (const auto &rule : m_map_rules) {
409 std::string name = rule.match(m_token_subject, m_username, req_path, m_groups);
410 if (!name.empty()) {
411 return name;
412 }
413 }
414 return "";
415 }
◆ groups()
| const std::vector< std::string > & XrdAccRules::groups |
( |
| ) |
const |
|
inline |
◆ parse()
| void XrdAccRules::parse |
( |
const AccessRulesRaw & | rules | ) |
|
|
inline |
Definition at line 399 of file XrdSciTokensAccess.cc.
399 {
400 m_rules.reserve(rules.size());
401 for (const auto &entry : rules) {
402 m_rules.emplace_back(entry.first, entry.second);
403 }
404 }
◆ size()
| size_t XrdAccRules::size |
( |
| ) |
const |
|
inline |
◆ str()
| const std::string XrdAccRules::str |
( |
| ) |
const |
|
inline |
Definition at line 417 of file XrdSciTokensAccess.cc.
418 {
419 std::stringstream ss;
420 ss << "mapped_username=" << m_username << ", subject=" << m_token_subject
421 << ", issuer=" << m_issuer;
422 if (!m_groups.empty()) {
423 ss << ", groups=";
424 bool first=true;
425 for (const auto &group : m_groups) {
426 ss << (first ? "" : ",") << group;
427 first = false;
428 }
429 }
430 if (!m_rules.empty()) {
431 ss << ", authorizations=" << AccessRuleStr(m_rules);
432 }
433 return ss.str();
434 }
The documentation for this class was generated from the following file: