Skip to content

UnboundID SCIM 2 SDK 3.2.0

Latest
Compare
Choose a tag to compare
@kqarryzada kqarryzada released this 04 Dec 19:04
· 2 commits to master since this release

We have just released version 3.2.0 of the UnboundID SCIM 2 SDK. It is available for download from GitHub and the Maven Central Repository. This release includes the following changes:

  • (#147) Added better customization of the MapperFactory. The MapperFactory class can be used to customize the behavior of the SDK when it converts JSON strings to Java Objects, and vice versa. This release now supports overriding the object mapper returned by the JsonUtils.createObjectMapper() method to allow for the addition of custom serializers and deserializers. See the class-level Javadoc of MapperFactory for more information on how to accomplish this.

  • (#213) Added a property that allows ADD patch operations with value filters to target an existing value. For example, consider the following patch request. This request aims to add a display field on a user's work email.

    {
      "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ],
      "Operations": [
        {
          "op": "add",
          "path": "emails[type eq \"work\"].display",
          "value": "Work Email"
        }
      ]
    }

    When the new behavior is configured, this operation will search the resource for an existing "work" email and add a "display": "Work Email" field to that email. This behavior allows for better integration with SCIM provisioners that send individual requests such as emails[type eq "work"].display followed by emails[type eq "work"].value, which are intended to target the same email. To use this behavior, toggle the property by adding the following Java code in your application:

    PatchOperation.APPEND_NEW_PATCH_VALUES_PROPERTY = false;

    The default value of APPEND_NEW_PATCH_VALUES_PROPERTY is true, which will always add a new value (i.e., email) on the multi-valued attribute instead of updating an existing value/email. This matches the behavior of the SDK since the 3.0.0 release.

  • Refreshed the documentation of the GenericScimResource class to provide better insight on how it can be used to define resource types for objects that don't have a strongly defined schema. The class-level Javadoc describes how to interface with the object effectively, and the methods now provide clearer examples of how they can be used.

  • (#233) Updated the ListResponse class to prevent deserialization errors when the Resources array is null. This is now permitted when totalResults and/or itemsPerPage is set to 0. RFC 7644 Section 3.4.2 explicitly states that the Resources array may be null when totalResults is 0, so the SCIM SDK will no longer throw deserialization exceptions when processing JSON of this form.

  • Updated the class-level documentation of ListResponse to provide more background about the resource type and how to interface with the object.

  • Fixed an issue where AndFilter.equals() and OrFilter.equals() could incorrectly evaluate to true.

  • Updated Jackson dependencies to version 2.17.2.