Definition at line 369 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 372 of file XrdSciTokensAccess.cc.
374 :
375 m_authz_strategy(authz_strategy),
376 m_expiry_time(expiry_time),
377 m_username(username),
378 m_token_subject(token_subject),
379 m_issuer(issuer),
380 m_map_rules(rules),
382 {}
const std::vector< std::string > & groups() const
References groups().
◆ ~XrdAccRules()
| XrdAccRules::~XrdAccRules |
( |
| ) |
|
|
inline |
◆ apply()
Definition at line 386 of file XrdSciTokensAccess.cc.
386 {
387 for (const auto & rule : m_rules) {
388
389 if (rule.first != oper)
390 continue;
391
392
393 if (rule.second == "/")
394 return true;
395
396
398 return true;
399 } else {
400
403 return true;
404 }
405 }
406 return false;
407 }
@ AOP_Stat
exists(), stat()
static bool is_subdirectory(const std::string_view dir, const std::string_view 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 418 of file XrdSciTokensAccess.cc.
419 {
420 for (const auto &rule : m_map_rules) {
421 std::string name = rule.match(m_token_subject, m_username, req_path, m_groups);
422 if (!name.empty()) {
423 return name;
424 }
425 }
426 return "";
427 }
◆ groups()
| const std::vector< std::string > & XrdAccRules::groups |
( |
| ) |
const |
|
inline |
◆ parse()
| void XrdAccRules::parse |
( |
const AccessRulesRaw & | rules | ) |
|
|
inline |
Definition at line 411 of file XrdSciTokensAccess.cc.
411 {
412 m_rules.reserve(rules.size());
413 for (const auto &entry : rules) {
414 m_rules.emplace_back(entry.first, entry.second);
415 }
416 }
◆ size()
| size_t XrdAccRules::size |
( |
| ) |
const |
|
inline |
◆ str()
| const std::string XrdAccRules::str |
( |
| ) |
const |
|
inline |
Definition at line 429 of file XrdSciTokensAccess.cc.
430 {
431 std::stringstream ss;
432 ss << "mapped_username=" << m_username << ", subject=" << m_token_subject
433 << ", issuer=" << m_issuer;
434 if (!m_groups.empty()) {
435 ss << ", groups=";
436 bool first=true;
437 for (const auto &group : m_groups) {
438 ss << (first ? "" : ",") << group;
439 first = false;
440 }
441 }
442 if (!m_rules.empty()) {
443 ss << ", authorizations=" << AccessRuleStr(m_rules);
444 }
445 return ss.str();
446 }
The documentation for this class was generated from the following file: