Definition at line 349 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 352 of file XrdSciTokensAccess.cc.
355 m_authz_strategy(authz_strategy),
356 m_expiry_time(expiry_time),
357 m_username(username),
358 m_token_subject(token_subject),
const std::vector< std::string > & groups() const
◆ ~XrdAccRules()
XrdAccRules::~XrdAccRules |
( |
| ) |
|
|
inline |
◆ apply()
Definition at line 366 of file XrdSciTokensAccess.cc.
367 auto is_subdirectory = [](
const std::string& dir,
const std::string& subdir) {
368 if (subdir.size() < dir.size())
371 if (subdir.compare(0, dir.size(), dir, 0, dir.size()) != 0)
374 return dir.size() == subdir.size() || subdir[dir.size()] ==
'/' || dir ==
"/";
377 for (
const auto & rule : m_rules) {
379 if (rule.first != oper)
383 if (rule.second ==
"/")
387 if (is_subdirectory(rule.second, path)) {
392 if (is_subdirectory(path, rule.second))
@ AOP_Stat
exists(), stat()
References AOP_Mkdir, and AOP_Stat.
◆ 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 408 of file XrdSciTokensAccess.cc.
410 for (
const auto &rule : m_map_rules) {
411 std::string name = rule.match(m_token_subject, m_username, req_path, m_groups);
◆ groups()
const std::vector<std::string>& XrdAccRules::groups |
( |
| ) |
const |
|
inline |
◆ parse()
void XrdAccRules::parse |
( |
const AccessRulesRaw & |
rules | ) |
|
|
inline |
Definition at line 401 of file XrdSciTokensAccess.cc.
402 m_rules.reserve(rules.size());
403 for (
const auto &entry : rules) {
404 m_rules.emplace_back(entry.first, entry.second);
◆ size()
size_t XrdAccRules::size |
( |
| ) |
const |
|
inline |
◆ str()
const std::string XrdAccRules::str |
( |
| ) |
const |
|
inline |
Definition at line 419 of file XrdSciTokensAccess.cc.
421 std::stringstream ss;
422 ss <<
"mapped_username=" << m_username <<
", subject=" << m_token_subject
423 <<
", issuer=" << m_issuer;
424 if (!m_groups.empty()) {
427 for (
const auto &group : m_groups) {
428 ss << (first ?
"" :
",") << group;
432 if (!m_rules.empty()) {
433 ss <<
", authorizations=" << AccessRuleStr(m_rules);
The documentation for this class was generated from the following file: