Definition at line 362 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 365 of file XrdSciTokensAccess.cc.
367 :
368 m_authz_strategy(authz_strategy),
369 m_expiry_time(expiry_time),
370 m_username(username),
371 m_token_subject(token_subject),
372 m_issuer(issuer),
373 m_map_rules(rules),
375 {}
const std::vector< std::string > & groups() const
References groups().
◆ ~XrdAccRules()
| XrdAccRules::~XrdAccRules |
( |
| ) |
|
|
inline |
◆ apply()
Definition at line 379 of file XrdSciTokensAccess.cc.
379 {
380 for (const auto & rule : m_rules) {
381
382 if (rule.first != oper)
383 continue;
384
385
386 if (rule.second == "/")
387 return true;
388
389
391 return true;
392 } else {
393
396 return true;
397 }
398 }
399 return false;
400 }
@ 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 411 of file XrdSciTokensAccess.cc.
412 {
413 for (const auto &rule : m_map_rules) {
414 std::string name = rule.match(m_token_subject, m_username, req_path, m_groups);
415 if (!name.empty()) {
416 return name;
417 }
418 }
419 return "";
420 }
◆ groups()
| const std::vector< std::string > & XrdAccRules::groups |
( |
| ) |
const |
|
inline |
◆ parse()
| void XrdAccRules::parse |
( |
const AccessRulesRaw & | rules | ) |
|
|
inline |
Definition at line 404 of file XrdSciTokensAccess.cc.
404 {
405 m_rules.reserve(rules.size());
406 for (const auto &entry : rules) {
407 m_rules.emplace_back(entry.first, entry.second);
408 }
409 }
◆ size()
| size_t XrdAccRules::size |
( |
| ) |
const |
|
inline |
◆ str()
| const std::string XrdAccRules::str |
( |
| ) |
const |
|
inline |
Definition at line 422 of file XrdSciTokensAccess.cc.
423 {
424 std::stringstream ss;
425 ss << "mapped_username=" << m_username << ", subject=" << m_token_subject
426 << ", issuer=" << m_issuer;
427 if (!m_groups.empty()) {
428 ss << ", groups=";
429 bool first=true;
430 for (const auto &group : m_groups) {
431 ss << (first ? "" : ",") << group;
432 first = false;
433 }
434 }
435 if (!m_rules.empty()) {
436 ss << ", authorizations=" << AccessRuleStr(m_rules);
437 }
438 return ss.str();
439 }
The documentation for this class was generated from the following file: