[cpp-sp] branch main updated: Update logic for legacy AuthnContext rules.
Scott Cantor
cantor.2 at osu.edu
Tue Apr 22 20:31:41 UTC 2025
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository cpp-sp.
View the commit online:
http://git.shibboleth.net/view/?p=cpp-sp.git;a=commit;h=f75ce2e95a7fded2ed02e7a4441501911690a334
The following commit(s) were added to refs/heads/main by this push:
new f75ce2e9 Update logic for legacy AuthnContext rules.
f75ce2e9 is described below
commit f75ce2e95a7fded2ed02e7a4441501911690a334
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Apr 22 16:31:34 2025 -0400
Update logic for legacy AuthnContext rules.
---
shibsp/impl/XMLAccessControl.cpp | 35 +++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/shibsp/impl/XMLAccessControl.cpp b/shibsp/impl/XMLAccessControl.cpp
index 5f7c7cd3..67cca34b 100644
--- a/shibsp/impl/XMLAccessControl.cpp
+++ b/shibsp/impl/XMLAccessControl.cpp
@@ -183,15 +183,24 @@ AccessControl::aclresult_t Rule::authorized(const SPRequest& request, const Sess
}
return shib_acl_false;
}
- if (m_alias == "user") {
+ else if (m_alias == "user") {
if (m_vals.find(request.getRemoteUser()) != m_vals.end()) {
request.log(Priority::SHIB_DEBUG, string("AccessControl rule expecting REMOTE_USER (") + request.getRemoteUser() + "), authz granted");
return shib_acl_true;
}
return shib_acl_false;
}
- else if (m_alias == "authnContextClassRef") {
- actual_alias = request.getAgent().getString("legacy-classref-attribute", "Shib-AuthnContext-Class");
+
+ // Last two rule types rely on AttributeConfiguration...
+
+ const AttributeConfiguration& attributeConfig = request.getAgent().getAttributeConfiguration(
+ request.getRequestSettings().first->getString("attributeConfigID")
+ );
+
+ if (m_alias == "authnContextClassRef") {
+ actual_alias = attributeConfig.getString(
+ AttributeConfiguration::LEGACY_CLASSREF_ATTRIBUTE_PROP_PATH,
+ AttributeConfiguration::LEGACY_CLASSREF_ATTRIBUTE_PROP_DEFAULT);
}
// Empty case is historical and not terribly smart, but we'll brute force it.
@@ -204,9 +213,6 @@ AccessControl::aclresult_t Rule::authorized(const SPRequest& request, const Sess
}
// Otherwise call into the helper logic to handle matching process..
- const AttributeConfiguration& attributeConfig = request.getAgent().getAttributeConfiguration(
- request.getRequestSettings().first->getString("attributeConfigID")
- );
if (attributeConfig.hasMatchingValue(*session, actual_alias.c_str(), m_vals)) {
request.log(Priority::SHIB_DEBUG, string("AccessControl rule satisfied for attribute (") + actual_alias + "), authz granted");
return shib_acl_true;
@@ -255,22 +261,27 @@ AccessControl::aclresult_t RuleRegex::authorized(const SPRequest& request, const
}
return shib_acl_false;
}
-
- if (m_alias == "user") {
+ else if (m_alias == "user") {
if (regexp::regex_match(request.getRemoteUser(), m_re, match_flags)) {
request.log(Priority::SHIB_DEBUG, string("AccessControl rule expecting REMOTE_USER regex (") + m_exp + "), authz granted");
return shib_acl_true;
}
return shib_acl_false;
}
- else if (m_alias == "authnContextClassRef") {
- actual_alias = request.getAgent().getString("legacy-classref-attribute", "Shib-AuthnContext-Class");
- }
- // Call into the helper logic to handle matching process..
+ // Last two rule types rely on AttributeConfiguration...
+
const AttributeConfiguration& attributeConfig = request.getAgent().getAttributeConfiguration(
request.getRequestSettings().first->getString("attributeConfigID")
);
+
+ if (m_alias == "authnContextClassRef") {
+ actual_alias = attributeConfig.getString(
+ AttributeConfiguration::LEGACY_CLASSREF_ATTRIBUTE_PROP_PATH,
+ AttributeConfiguration::LEGACY_CLASSREF_ATTRIBUTE_PROP_DEFAULT);
+ }
+
+ // Call into the helper logic to handle matching process..
if (attributeConfig.hasMatchingValue(*session, actual_alias.c_str(), m_re)) {
request.log(Priority::SHIB_DEBUG,
string("AccessControl rule for attribute (") + actual_alias + ") expecting regex (" + m_exp + ", authz granted");
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list