[java-oidc-common] branch main updated: Null fixes and defaulting to NonnullElements.
Scott Cantor
cantor.2 at osu.edu
Tue Oct 3 14:19:17 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-oidc-common.
View the commit online:
http://git.shibboleth.net/view/?p=java-oidc-common.git;a=commit;h=5aae48a60eaa35bd5e220a532f3958e83e3ef615
The following commit(s) were added to refs/heads/main by this push:
new 5aae48a Null fixes and defaulting to NonnullElements.
5aae48a is described below
commit 5aae48a60eaa35bd5e220a532f3958e83e3ef615
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Oct 3 10:19:14 2023 -0400
Null fixes and defaulting to NonnullElements.
---
.../AbstractOIDCAttributeTranscoder.java | 21 ++++++++++++---------
.../oidc/attribute/transcoding/package-info.java | 4 +++-
2 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/AbstractOIDCAttributeTranscoder.java b/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/AbstractOIDCAttributeTranscoder.java
index 63234bb..b539319 100644
--- a/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/AbstractOIDCAttributeTranscoder.java
+++ b/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/AbstractOIDCAttributeTranscoder.java
@@ -14,7 +14,6 @@
package net.shibboleth.oidc.attribute.transcoding;
-import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
@@ -24,7 +23,6 @@ import javax.annotation.Nullable;
import org.opensaml.profile.context.ProfileRequestContext;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.google.common.base.Strings;
import com.nimbusds.openid.connect.sdk.claims.ClaimRequirement;
@@ -40,7 +38,8 @@ import net.shibboleth.idp.attribute.IdPRequestedAttribute;
import net.shibboleth.idp.attribute.transcoding.AbstractAttributeTranscoder;
import net.shibboleth.idp.attribute.transcoding.AttributeTranscoderRegistry;
import net.shibboleth.idp.attribute.transcoding.TranscodingRule;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Abstract class for OIDC attribute encoders.
@@ -53,7 +52,7 @@ public abstract class AbstractOIDCAttributeTranscoder
/** {@inheritDoc} */
@Override
- public Class<JSONObject> getEncodedType() {
+ @Nonnull public Class<JSONObject> getEncodedType() {
return JSONObject.class;
}
@@ -104,13 +103,16 @@ public abstract class AbstractOIDCAttributeTranscoder
*/
@Nonnull protected JSONObject buildClaim(@Nullable final ProfileRequestContext profileRequestContext,
@Nullable final IdPAttribute attribute, @Nonnull final TranscodingRule rule,
- @Nonnull @NonnullElements final Object claimValues) throws AttributeEncodingException {
+ @Nullable final Object claimValues) throws AttributeEncodingException {
if (claimValues == null) {
throw new AttributeEncodingException("Unable to build OIDC claim with no value(s)");
}
- final String name = rule.getOrDefault(PROP_NAME, String.class, attribute.getId());
+ final String name = rule.getOrDefault(PROP_NAME, String.class, attribute != null ? attribute.getId() : null);
+ if (Strings.isNullOrEmpty(name)) {
+ throw new AttributeEncodingException("Required transcoder property '" + PROP_NAME + "' not found");
+ }
final JSONObject claim = new JSONObject();
claim.put(name, claimValues);
@@ -156,7 +158,7 @@ public abstract class AbstractOIDCAttributeTranscoder
return buildIdPAttribute(profileRequestContext, input, rule, decodedValues);
}
}
- return buildIdPAttribute(profileRequestContext, input, rule, Collections.emptyList());
+ return buildIdPAttribute(profileRequestContext, input, rule, CollectionSupport.emptyList());
}
/**
@@ -173,12 +175,13 @@ public abstract class AbstractOIDCAttributeTranscoder
*/
@Nonnull protected IdPAttribute buildIdPAttribute(@Nullable final ProfileRequestContext profileRequestContext,
@Nonnull final JSONObject claim, @Nonnull final TranscodingRule rule,
- @Nonnull @NonnullElements final List<IdPAttributeValue> attributeValues) throws AttributeDecodingException {
+ @Nonnull final List<IdPAttributeValue> attributeValues) throws AttributeDecodingException {
final String id = rule.get(AttributeTranscoderRegistry.PROP_ID, String.class);
if (Strings.isNullOrEmpty(id)) {
throw new AttributeDecodingException("Required transcoder property 'id' not found");
}
+ assert id != null;
final String name = rule.getOrDefault(PROP_NAME, String.class, id);
@@ -209,7 +212,7 @@ public abstract class AbstractOIDCAttributeTranscoder
*
* @throws AttributeDecodingException if there's a problem decoding the claim value
*/
- @Nonnull @NonnullElements protected abstract List<IdPAttributeValue> decodeValues(
+ @Nonnull protected abstract List<IdPAttributeValue> decodeValues(
@Nullable final ProfileRequestContext profileRequestContext, @Nonnull final Object input,
@Nonnull final TranscodingRule rule) throws AttributeDecodingException;
diff --git a/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/package-info.java b/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/package-info.java
index 34b6fa5..25753f6 100644
--- a/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/package-info.java
+++ b/oidc-common-attribute-api/src/main/java/net/shibboleth/oidc/attribute/transcoding/package-info.java
@@ -13,5 +13,7 @@
*/
/** OIDC Attribute Transcoding base classes. */
+ at NonnullElements
+package net.shibboleth.oidc.attribute.transcoding;
-package net.shibboleth.oidc.attribute.transcoding;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list