Sourced from com.unboundid.product.scim2:scim2-sdk-client's changelog.
v4.0.0 - 2025-Jun-10
Removed support for Java 11. The UnboundID SCIM 2 SDK now requires Java 17 or a later release.
Updated the following dependencies:
- Jackson: 2.18.3
- Jakarta RS: 4.0.0
- Jersey: 3.1.10
Updated the default behavior for ADD patch requests with value filters (e.g.,
emails[type eq "work"].display
). The SCIM SDK will now target existing values within the multi-valued attribute. For more background on this type of patch request, see the release notes for the 3.2.0 release where this was introduced (but not made the default). To restore the old behavior, set the following property in your application:PatchOperation.APPEND_NEW_PATCH_VALUES_PROPERTY = true;
Updated
SearchRequestBuilder
to be more permissive of ListResponses with non-standard attribute casing (e.g., if a response includes a"resources"
array instead of"Resources"
).Updated the class-level documentation of
SearchRequest
to provide more background about how searches are performed in the SCIM standard.Added a new property that allows ignoring unknown fields when converting JSON text to Java objects that inherit from
BaseScimResource
. This behaves similarly to theFAIL_ON_UNKNOWN_PROPERTIES
setting from the Jackson library, and allows for easier integration with SCIM service providers that include additional non-standard data in their responses. To enable this setting, set the following property in your application code:BaseScimResource.IGNORE_UNKNOWN_FIELDS = true;
Fixed an issue with methods that interface with schema extensions such as
BaseScimResource.getExtensionValues(String)
. These accepted paths as a string, but previously performed updates to the extension data incorrectly.Simplified the implementation of the StaticUtils#toLowerCase method. This had an optimization for Java versions before JDK 9 that was especially beneficial for the most common case of handling ASCII characters. Since JDK 9, however, the String class has been updated so that the class is backed by a byte array as opposed to a character array, so it is more optimal to use the JDK's implementation directly while handling null values.
Previous releases of the SCIM SDK set many classes as
final
to encourage applications to follow strict compliance to the SCIM standard. However, this also makes it difficult to integrate with services that violate the standard. An example of this is a SCIM error response that contains extra fields in the JSON body. To help accommodate these integrations, the SCIM SDK has been updated so that several model classes are no longerfinal
, allowing applications toextend
them if needed. The following classes were updated:
- scim2-sdk-client builder classes such as
CreateRequestBuilder.java
ErrorResponse.java
... (truncated)
039c7e6
Setting release version 4.0.0ea04864
Update CHANGELOG date for the 4.0.0 release.bfd276e
Make GenericScimResource extendable.9008757
Clean up POM and remove Guava test dependency.a954381
Remove the deprecated ScimDateFormat class.76f2314
Enhance the Filter classes and their documentationcfd9d7e
Add a new filter method for SearchRequestBuilder.3c3c0ca
Fix CodeQL by adding Java 17 installation step114ad51
Import the default codeql.yaml26fe8f1
Allow extending model classes