[java-shib-attribute] branch main updated: IDP-2375 - Aliased decoded IdPAttributes are lost during subsequent use
Scott Cantor
cantor.2 at osu.edu
Tue Apr 22 15:04:48 UTC 2025
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=3c0c460e68e41f9539e205e08826351bb5da362a
The following commit(s) were added to refs/heads/main by this push:
new 3c0c460e6 IDP-2375 - Aliased decoded IdPAttributes are lost during subsequent use
3c0c460e6 is described below
commit 3c0c460e68e41f9539e205e08826351bb5da362a
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Apr 22 11:04:45 2025 -0400
IDP-2375 - Aliased decoded IdPAttributes are lost during subsequent use
https://shibboleth.atlassian.net/browse/IDP-2375
Fix some null issues.
---
.../idp/attribute/context/AttributeContext.java | 42 +++++++++++++++++-----
.../filter/context/AttributeFilterContext.java | 27 ++++++++++----
2 files changed, 54 insertions(+), 15 deletions(-)
diff --git a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
index 8082bb385..e2588d4cf 100644
--- a/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
+++ b/shib-attribute-api/src/main/java/net/shibboleth/idp/attribute/context/AttributeContext.java
@@ -15,7 +15,6 @@
package net.shibboleth.idp.attribute.context;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import javax.annotation.Nonnull;
@@ -69,11 +68,14 @@ public final class AttributeContext extends BaseContext {
* @param newAttributes the attributes
*
* @return this context
+ *
+ * @deprecated
*/
@Deprecated(since = "5.2.0", forRemoval = true)
@Nonnull public AttributeContext setIdPAttributes(@Nullable final Collection<IdPAttribute> newAttributes) {
- DeprecationSupport.warn(ObjectType.METHOD, "setIdPAttributes(Collection)", "AttributeContext", "setIdPAttributes(Map)");
+ DeprecationSupport.warn(ObjectType.METHOD,
+ "setIdPAttributes(Collection)", "AttributeContext", "setIdPAttributes(Map)");
return setIdPAttributes(IdPAttributeSupport.toMapMergeDuplicates(newAttributes));
}
@@ -83,11 +85,16 @@ public final class AttributeContext extends BaseContext {
* @param newAttributes the attributes
*
* @return this context
+ *
+ * @since 5.2.0
*/
@Nonnull public AttributeContext setIdPAttributes(@Nullable final Map<String, IdPAttribute> newAttributes) {
- attributes = Collections.unmodifiableMap(newAttributes);
-
+ if (newAttributes != null) {
+ attributes = CollectionSupport.copyToMap(newAttributes);
+ } else {
+ attributes = CollectionSupport.emptyMap();
+ }
return this;
}
@@ -107,17 +114,36 @@ public final class AttributeContext extends BaseContext {
* @param newAttributes the attributes
*
* @return this context
+ *
+ * @deprecated
*/
@Deprecated(since = "5.2.0", forRemoval = true)
- @Nonnull public AttributeContext setUnfilteredIdPAttributes(@Nullable final Collection<IdPAttribute> newAttributes) {
+ @Nonnull public AttributeContext setUnfilteredIdPAttributes(
+ @Nullable final Collection<IdPAttribute> newAttributes) {
- DeprecationSupport.warn(ObjectType.METHOD, "setUnfilteredIdPAttributes(Collection)", "AttributeContext", "setUnfilteredIdPAttributes(Map)");
+ DeprecationSupport.warn(ObjectType.METHOD,
+ "setUnfilteredIdPAttributes(Collection)", "AttributeContext", "setUnfilteredIdPAttributes(Map)");
return setUnfilteredIdPAttributes(IdPAttributeSupport.toMapMergeDuplicates(newAttributes));
}
- @Nonnull public AttributeContext setUnfilteredIdPAttributes(@Nullable final Map<String, IdPAttribute> newAttributes) {
- unfilteredAttributes = Collections.unmodifiableMap(newAttributes);
+ /**
+ * Sets the unfiltered attributes tracked by this context.
+ *
+ * @param newAttributes the attributes
+ *
+ * @return this context
+ *
+ * @since 5.2.0
+ */
+ @Nonnull public AttributeContext setUnfilteredIdPAttributes(
+ @Nullable final Map<String, IdPAttribute> newAttributes) {
+
+ if (newAttributes != null) {
+ unfilteredAttributes = CollectionSupport.copyToMap(newAttributes);
+ } else {
+ unfilteredAttributes = CollectionSupport.emptyMap();
+ }
return this;
}
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
index 26fd84f98..03e946eaa 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
@@ -15,7 +15,6 @@
package net.shibboleth.idp.attribute.filter.context;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import java.util.function.Function;
@@ -224,13 +223,18 @@ public final class AttributeFilterContext extends BaseContext {
*
* @param attributes attributes which are to be filtered
*
- * @return this context;
+ * @return this context
+ *
+ * @deprecated
*/
@Deprecated(since = "5.2.0", forRemoval = true)
@Nonnull public AttributeFilterContext setPrefilteredIdPAttributes(
@Nullable final Collection<IdPAttribute> attributes) {
- DeprecationSupport.warn(ObjectType.METHOD, "setPrefilteredIdPAttributes(Collection)", "AttributeFilterContext", "setPrefilteredIdPAttributes(Map)");
+ DeprecationSupport.warn(ObjectType.METHOD,
+ "setPrefilteredIdPAttributes(Collection)",
+ "AttributeFilterContext",
+ "setPrefilteredIdPAttributes(Map)");
return setPrefilteredIdPAttributes(IdPAttributeSupport.toMapMergeDuplicates(attributes));
}
@@ -240,12 +244,18 @@ public final class AttributeFilterContext extends BaseContext {
*
* @param attributes attributes which are to be filtered
*
- * @return this context;
+ * @return this context
+ *
+ * @since 5.2.0
*/
@Nonnull public AttributeFilterContext setPrefilteredIdPAttributes(
@Nullable final Map<String, IdPAttribute> attributes) {
- prefilteredAttributes = Collections.unmodifiableMap(attributes);
+ if (attributes != null) {
+ prefilteredAttributes = CollectionSupport.copyToMap(attributes);
+ } else {
+ prefilteredAttributes = CollectionSupport.emptyMap();
+ }
return this;
}
@@ -265,12 +275,15 @@ public final class AttributeFilterContext extends BaseContext {
* @param attributes attributes that have been filtered
*
* @return this context
+ *
+ * @deprecated
*/
@Deprecated(since = "5.2.0", forRemoval = true)
@Nonnull public AttributeFilterContext setFilteredIdPAttributes(
@Nullable final Collection<IdPAttribute> attributes) {
- DeprecationSupport.warn(ObjectType.METHOD, "setFilteredIdPAttributes(Collection)", "AttributeFilterContext", "setFilteredIdPAttributes(Map)");
+ DeprecationSupport.warn(ObjectType.METHOD,
+ "setFilteredIdPAttributes(Collection)", "AttributeFilterContext", "setFilteredIdPAttributes(Map)");
return setFilteredIdPAttributes(IdPAttributeSupport.toMapMergeDuplicates(attributes));
}
@@ -288,7 +301,7 @@ public final class AttributeFilterContext extends BaseContext {
if (attributes == null) {
filteredAttributes = CollectionSupport.emptyMap();
} else {
- filteredAttributes = Collections.unmodifiableMap(attributes);
+ filteredAttributes = CollectionSupport.copyToMap(attributes);
}
return this;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list