Sourced from com.unboundid.product.scim2:scim2-sdk-client's changelog.
v4.1.0 - 2025-Oct-06
Added new methods to the Path class to simplify certain usages and make interaction, especially instantiation, less verbose. These include:
- Creation of simple attributes (e.g.,
username) previously had to be performed withPath.root().attribute("userName"), but can now be done withPath.of("userName"). Note that this may only be used for simple, top-level attributes that are typically hard-coded.- For fetching the last element in a path, library calls such as
path.getElement(path.size() - 1)can now be shortened topath.getLastElement().Updated the documentation of the Path class to elaborate on the definition of an attribute path, as well as provide examples for how to interface with the class.
Simplified integration with the
scim2-sdk-clientlibrary by updating subclasses ofRequestBuilderto always provideGenericScimResourceobjects for JSON payloads. In previous releases, applications needed to use the right JSON properties in the environment so that the client library would send proper JSON when issuing HTTP requests. This update to the client library places the responsibility for serialization on the SCIM SDK itself, and reduces the number of HTTP client configuration properties to set within your application. If you have added custom HTTP configuration to your project specifically for the SCIM SDK, you may be able to remove some properties.Updated the following dependencies:
- Jackson: 2.19.2
Added a new
ForbiddenException.sensitive()method to simplify the creation of a403 FORBIDDENexception for a client that has entered potentially-sensitive information via URL query parameters. This exception encourages SCIM clients to re-issue these requests as a POST search request that is less susceptible to leaking this information from web browsers or log data.Deprecated the
BaseScimResource#addExtensionValuemethods, since they allowed creating schema extension attributes whose values are arrays instead of objects. Since this is a form that is not used in practice, these methods will be removed in a future release.Fixed an issue where deserialization of
ListResponseobjects could result inClassCastExceptionerrors if an application tried to use fields stored in theResourcesarray. Now, the SCIM SDK supports these conversions (via JacksonTypeReferenceobjects). See the class-level Javadoc of ListResponse for more information. As a result of this change, the map-based constructor,com.unboundid.scim2.common.messages.ListResponse.ListResponse(java.util.Map), is now deprecated and will be removed in a future release.Updated documentation for
GroupResourceandGroupto highlight the distinction between the classes, as well as provide examples of how they may be used. GroupResource represents a group object/entity, whereas aGroupis a subfield on a user resource (likeUserResourcewas also updated.Added support for non-standard group membership patch remove requests that contain a value. An example JSON for this request type is shared below:
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [{ </tr></table>
... (truncated)
b780494
Setting release version 4.1.0b6ed7c8
Add relativePath to child pom.xml files.dbfc354
Revert version updates to re-attempt release.8ce6abe
Setting release version 4.1.1-SNAPSHOTd0ddde5
Setting release version 4.1.01ee18e9
Update CHANGELOG date for the next release.ee20b63
Fix incorrect Javadoc.ffc152a
Support non-standard patch group membership remove313bccc
Deprecate BaseScimResource#addExtensionValue3c6bb67
Update formatting and documentation.