[java-shib-attribute] branch main updated: IDP-2069 - Null Handling Task
Scott Cantor
cantor.2 at osu.edu
Mon Mar 27 16:40:25 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=b6bf6bb4448723184f0dda5e6b58448690394224
The following commit(s) were added to refs/heads/main by this push:
new b6bf6bb44 IDP-2069 - Null Handling Task
b6bf6bb44 is described below
commit b6bf6bb4448723184f0dda5e6b58448690394224
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Mar 27 12:40:20 2023 -0400
IDP-2069 - Null Handling Task
https://shibboleth.atlassian.net/browse/IDP-2069
SAML 2 XMLObject null cleanup.
---
.../filter/matcher/saml/impl/AttributeInMetadataMatcher.java | 8 ++++++--
.../policyrule/saml/impl/IssuerRegistrationAuthorityTest.java | 6 ++++--
.../policyrule/saml/impl/RequesterRegistrationAuthorityTest.java | 6 ++++--
.../resolver/spring/AttributeMappingNodeProcessorTest.java | 9 +++++----
.../attribute/transcoding/AbstractSAML2AttributeTranscoder.java | 7 +++++--
.../transcoding/impl/SAML2ByteAttributeTranscoderTest.java | 3 ++-
.../transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java | 3 ++-
.../impl/SAML2ScopedStringAttributeTranscoderTest.java | 3 ++-
.../transcoding/impl/SAML2StringAttributeTranscoderTest.java | 3 ++-
.../transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java | 3 ++-
10 files changed, 34 insertions(+), 17 deletions(-)
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
index 28682ed63..536b60c37 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
@@ -207,7 +207,11 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
return CollectionSupport.emptySet();
}
- if (onlyIfRequired && !requestedAttribute.isRequired()) {
+ Boolean isRequired = requestedAttribute.isRequired();
+ if (isRequired == null) {
+ isRequired = false;
+ }
+ if (onlyIfRequired && !isRequired) {
log.debug("{} Attribute {} found in metadata, but was not required, values not matched",
getLogPrefix(), attributeToLog);
return CollectionSupport.emptySet();
@@ -319,7 +323,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
final List<RequestedAttribute> requested = service.getRequestedAttributes();
for (final RequestedAttribute attr : requested) {
- if (attr.getName().equals(name)) {
+ if (name.equals(attr.getName())) {
final String format = attr.getNameFormat();
if (nameFormat == null || format == null || format.equals(Attribute.UNSPECIFIED)
|| nameFormat.equals(format)) {
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java
index 52ff902b5..380cecbf8 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/IssuerRegistrationAuthorityTest.java
@@ -22,6 +22,8 @@ import static org.testng.Assert.fail;
import java.util.Arrays;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.testng.annotations.BeforeClass;
@@ -50,9 +52,9 @@ public class IssuerRegistrationAuthorityTest extends BaseMetadataTests {
metadata = unmarshallElement("/net/shibboleth/idp/filter/impl/saml/mdrpi-metadata.xml");
}
- private EntityDescriptor getEntity(String entityID) {
+ @Nullable private EntityDescriptor getEntity(String entityID) {
for (EntityDescriptor entity : metadata.getEntityDescriptors()) {
- if (entity.getEntityID().equals(entityID)) {
+ if (entityID.equals(entity.getEntityID())) {
return entity;
}
}
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java
index a9e1772e2..28fd3ed37 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/RequesterRegistrationAuthorityTest.java
@@ -22,6 +22,8 @@ import static org.testng.Assert.fail;
import java.util.Arrays;
+import javax.annotation.Nullable;
+
import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.testng.annotations.BeforeClass;
@@ -50,9 +52,9 @@ public class RequesterRegistrationAuthorityTest extends BaseMetadataTests {
metadata = unmarshallElement("/net/shibboleth/idp/filter/impl/saml/mdrpi-metadata.xml");
}
- private EntityDescriptor getEntity(String entityID) {
+ @Nullable private EntityDescriptor getEntity(String entityID) {
for (EntityDescriptor entity : metadata.getEntityDescriptors()) {
- if (entity.getEntityID().equals(entityID)) {
+ if (entityID.equals(entity.getEntityID())) {
return entity;
}
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
index a6e2a64ca..fd2b41687 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
@@ -31,6 +31,7 @@ import org.opensaml.core.testing.XMLObjectBaseTestCase;
import org.opensaml.saml.metadata.resolver.filter.FilterException;
import org.opensaml.saml.saml2.metadata.AttributeConsumingService;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
import org.springframework.context.support.ConversionServiceFactoryBean;
import org.springframework.context.support.GenericApplicationContext;
import org.testng.annotations.AfterClass;
@@ -137,10 +138,10 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
@Test public void requiredAttributes() throws FilterException {
assert entityDescriptor != null;
- final AttributeConsumingService acs =
- entityDescriptor.getSPSSODescriptor("urn:oasis:names:tc:SAML:1.1:protocol")
- .getDefaultAttributeConsumingService();
-
+ final SPSSODescriptor role = entityDescriptor.getSPSSODescriptor("urn:oasis:names:tc:SAML:1.1:protocol");
+ final AttributeConsumingService acs = role != null ? role.getDefaultAttributeConsumingService() : null;
+ assert acs != null;
+
assertTrue(acs.getObjectMetadata().get(AttributesMapContainer.class).isEmpty());
assert processor != null;
diff --git a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java
index 43e65e1bd..9a4033a88 100644
--- a/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java
+++ b/shib-saml-attribute-api/src/main/java/net/shibboleth/idp/saml/attribute/transcoding/AbstractSAML2AttributeTranscoder.java
@@ -144,9 +144,12 @@ public abstract class AbstractSAML2AttributeTranscoder<EncodedType extends IdPAt
assert id != null;
final IdPAttribute idpAttribute;
- if (attribute instanceof RequestedAttribute) {
+ if (attribute instanceof RequestedAttribute reqAttribute) {
idpAttribute = new IdPRequestedAttribute(id);
- ((IdPRequestedAttribute) idpAttribute).setRequired(((RequestedAttribute) attribute).isRequired());
+ final Boolean isRequired = reqAttribute.isRequired();
+ if (isRequired != null) {
+ ((IdPRequestedAttribute) idpAttribute).setRequired(isRequired);
+ }
} else {
idpAttribute = new IdPAttribute(id);
}
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
index 6f041571b..4a11e8f2e 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
@@ -263,7 +263,8 @@ public class SAML2ByteAttributeTranscoderTest extends OpenSAMLInitBaseTestCase {
Assert.assertEquals(attr.getName(), ATTR_NAME);
Assert.assertEquals(attr.getNameFormat(), ATTR_NAMEFORMAT);
Assert.assertEquals(attr.getFriendlyName(), ATTR_FRIENDLYNAME);
- Assert.assertTrue(attr.isRequired());
+ final Boolean isRequired = attr.isRequired();
+ Assert.assertTrue(isRequired != null && isRequired);
final List<XMLObject> children = attr.getOrderedChildren();
assert children != null;
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java
index fc92c8b9a..09d310d03 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java
@@ -289,7 +289,8 @@ public class SAML2DateTimeAttributeTranscoderTest extends OpenSAMLInitBaseTestCa
Assert.assertEquals(attr.getName(), ATTR_NAME);
Assert.assertEquals(attr.getNameFormat(), ATTR_NAMEFORMAT);
Assert.assertEquals(attr.getFriendlyName(), ATTR_FRIENDLYNAME);
- Assert.assertTrue(attr.isRequired());
+ final Boolean isRequired = attr.isRequired();
+ Assert.assertTrue(isRequired != null && isRequired);
final List<XMLObject> children = attr.getOrderedChildren();
assert children != null;
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
index 96e529517..6dc7c57be 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
@@ -267,7 +267,8 @@ public class SAML2ScopedStringAttributeTranscoderTest extends OpenSAMLInitBaseTe
Assert.assertEquals(attr.getName(), ATTR_NAME);
Assert.assertEquals(attr.getNameFormat(), ATTR_NAMEFORMAT);
Assert.assertEquals(attr.getFriendlyName(), ATTR_FRIENDLYNAME);
- Assert.assertTrue(attr.isRequired());
+ final Boolean isRequired = attr.isRequired();
+ Assert.assertTrue(isRequired != null && isRequired);
final List<XMLObject> children = attr.getOrderedChildren();
assert children != null;
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
index 863c20734..4d157cf26 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
@@ -255,7 +255,8 @@ public class SAML2StringAttributeTranscoderTest extends OpenSAMLInitBaseTestCase
Assert.assertEquals(attr.getName(), ATTR_NAME);
Assert.assertEquals(attr.getNameFormat(), ATTR_NAMEFORMAT);
Assert.assertEquals(attr.getFriendlyName(), ATTR_FRIENDLYNAME);
- Assert.assertTrue(attr.isRequired());
+ final Boolean isRequired = attr.isRequired();
+ Assert.assertTrue(isRequired != null && isRequired);
final List<XMLObject> children = attr.getOrderedChildren();
assert children != null;
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
index 3b3c2180f..2cd3d7f39 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
@@ -261,7 +261,8 @@ public class SAML2XMLObjectAttributeTranscoderTest extends OpenSAMLInitBaseTestC
Assert.assertEquals(attr.getName(), ATTR_NAME);
Assert.assertEquals(attr.getNameFormat(), ATTR_NAMEFORMAT);
Assert.assertEquals(attr.getFriendlyName(), ATTR_FRIENDLYNAME);
- Assert.assertTrue(attr.isRequired());
+ final Boolean isRequired = attr.isRequired();
+ Assert.assertTrue(isRequired != null && isRequired);
final List<XMLObject> children = attr.getOrderedChildren();
assert children != null;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list