[java-identity-provider COMMIT] /trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/po...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Sep 23 12:44:34 EDT 2014
Author: scantor
Date: Tue Sep 23 12:44:33 2014
New Revision: 6560
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6560&view=rev
Log:
Add group walk to RegistrationInfo policy rule.
Modified:
trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java
Modified: trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java?rev=6560&r1=6559&r2=6560&view=diff
==============================================================================
--- trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java (original)
+++ trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RegistrationAuthorityPolicyRule.java Tue Sep 23 12:44:33 2014
@@ -26,6 +26,7 @@
import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
import org.opensaml.saml.ext.saml2mdrpi.RegistrationInfo;
import org.opensaml.saml.saml2.common.Extensions;
+import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -90,28 +91,39 @@
final SAMLMetadataContext metadataContext = filterContext.getRequesterMetadataContext();
if (null == metadataContext) {
- log.info("{} Filtering on registration, but no metadata context available", getLogPrefix());
+ log.debug("{} Filtering on registration, but no metadata context available", getLogPrefix());
return null;
}
final EntityDescriptor spEntity = metadataContext.getEntityDescriptor();
if (null == spEntity) {
- log.info("Filtering on registration, but no peer metadata available");
+ log.debug("Filtering on registration, but no peer metadata available");
return null;
}
- final Extensions extensions = spEntity.getExtensions();
- if (null == extensions) {
- log.info("Filtering on registration, but no peer extensions available");
- return null;
+ Extensions extensions = spEntity.getExtensions();
+ if (null != extensions) {
+ for (final XMLObject object : extensions.getUnknownXMLObjects(RegistrationInfo.DEFAULT_ELEMENT_NAME)) {
+ if (object instanceof RegistrationInfo) {
+ return (RegistrationInfo) object;
+ }
+ }
+ }
+
+ EntitiesDescriptor group = (EntitiesDescriptor) spEntity.getParent();
+ while (null != group) {
+ extensions = group.getExtensions();
+ if (null != extensions) {
+ for (final XMLObject object : extensions.getUnknownXMLObjects(RegistrationInfo.DEFAULT_ELEMENT_NAME)) {
+ if (object instanceof RegistrationInfo) {
+ return (RegistrationInfo) object;
+ }
+ }
+ }
+ group = (EntitiesDescriptor) group.getParent();
}
- for (XMLObject object : extensions.getUnknownXMLObjects()) {
- if (object instanceof RegistrationInfo) {
- return (RegistrationInfo) object;
- }
- }
- log.info("Filtering on registration, but no RegistrationInfo available");
+ log.debug("Filtering on registration, but no RegistrationInfo available");
return null;
}
More information about the commits
mailing list