Releases: pingidentity/scim2
UnboundID SCIM 2 SDK 3.0.0
We have just released version 3.0.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:
-
Removed support for Java 8. The UnboundID SCIM 2 SDK now requires Java 11 or a later release.
-
Migrated
javax.*
namespaces to use Jakarta EE. Since Oracle has given stewardship of the Java EE project to Eclipse, this change facilitates the usage of these libraries under the Jakarta name, which provides better integration with projects such as Spring Boot 3.0. If your project uses components from JAX-RS or Jersey related to the SCIM SDK, then these references must be updated to match the new method definitions. For example, any code that creates ajavax.ws.rs.client.WebTarget
before passing it to the SCIM SDK will need to provide ajakarta.ws.rs.client.WebTarget
instead. To support this change, the following project dependencies were also upgraded:- Updated
javax.xml.bind-api
tojakarta.xml.bind-api
version 4.0. - Updated
javax.ws.rs-api
tojakarta.ws.rs-api
version 3.1.0 - Updated
javax.annotation-api
tojakarta.annotation-api
version 2.1.1 - Updated Jersey from 2.39.1 to 3.1.3
- Updated
-
Overhauled many of the class-level Javadocs in the scim2-sdk-common package. This provides better descriptions for SCIM entities, SDK-specific constructs (e.g.,
ScimResource
), and more background on SCIM conventions such as filtering. The new documentation also provides better descriptions for how certain classes in the SDK should be used, such as the Filter class. -
Added new constructors for some exception types involving the
scimType
field. This field is empty in many cases, so these new constructors set thescimType
value to benull
with the goal of simplifying the process of creating exceptions. -
Added support for patch operations of type ADD that contain a value selection filter in the path, e.g.,
emails[type eq "work"].value
. This type of request is used by some SCIM service providers to append extra data for multi-valued attributes such asemails
oraddresses
. -
Removed deprecated methods in
PatchOperation.java
andGenericScimResource.java
that utilized multi-valued boolean arrays.
SCIM 2 SDK 2.4.0
We have just released version 2.4.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:
-
Fixed an issue with PatchOperations that prevented setting the
value
field to an empty array. The constructor would previously reject this kind of operation with a BadRequestException. -
Added a variety of methods for providing multi-valued parameters without needing to wrap the arguments into a List. For example, setting a single email on a UserResource used to be done with
user.setEmails(Collections.singletonList(email))
, but this can now be shortened touser.setEmails(email)
. Note that the existing methods are still available and have not been deprecated. Other examples includeBaseScimResource.setSchemaUrns()
,GenericScimResource.addStringValues()
,PatchOperation.addDoubleValues()
, and thePatchRequest
constructor. -
Updated the schema URNs field of
BaseScimResource
to use aLinkedHashSet
instead of a genericHashSet
. This allows for a SCIM resource with multiple schema URNs to have a predictable order when the resource is deserialized into JSON. -
Deprecated methods of the form
addBooleanValues()
andgetBooleanValueList()
on theGenericScimResource
andPatchOperation
classes. These methods provided an interface for so-called "multi-valued boolean arrays", but boolean data is always single-valued in nature. Updating a boolean value should always be done with areplace
operation type rather than anadd
. -
Fixed an issue where
AttributeDefinition.toString()
would not print the mutability of an attribute. -
Added a
type
field to theMember
class as defined by RFC 7643 section 8.7.1. -
Fixed an issue with the attribute definitions of the
members
field of a GroupResource. The attribute definitions now indicate that the sub-attributes ofmembers
are all immutable. -
Fixed an issue where calling
ObjectMapper.copy()
would fail for object mappers that were created withJsonUtils.createObjectMapper()
.
SCIM 2 SDK 2.3.8
We have just released version 2.3.8 of the UnboundID SCIM 2 SDK. It is available for download from GitHub and the Maven Central Repository. This release includes the following changes:
- Updated the deserialized form of ListResponse objects so that the
itemsPerPage
andstartIndex
fields are listed at the top withtotalResults
. This matches the form of ListResponses shown in RFC 7644. - Updated the
PatchOperation
class to accept operation types where the first letter is capitalized, e.g.,"Add"
. This makes the SDK more permissive of operation types that violate RFC 7644, which is a known problem with Azure Active Directory as a SCIM client. - Updated the Jackson and jackson-databind dependencies to 2.14.2.
- Updated the jersey dependency to 2.39.1 to address a
ClassCastException
error.
SCIM 2 SDK 2.3.7
Changes In This Release
- Added ParserOptions class, which may be used to extend the set of characters allowed in filtered
attribute names. - Updated the TestNG dependency to 7.4.0 and corrected its scope from the default 'compile' to 'test'.
SCIM 2 SDK 2.3.6
This release updates the jackson-databind dependency to 2.10.5.1.
SCIM 2 SDK 2.3.5
This release updates the guava version to 29.0-jre which includes the latest known security fixes.
This release and future releases of the SCIM SDK require Java 8 or greater. Java 7 is no longer supported.
SCIM 2 SDK 2.3.4
This release contains a security-related change.
- Fix possible template variable injection within search parameters and returned resource location URLs.
SCIM 2 SDK 2.3.2
This release updates the jackson-databind version to 2.9.10 which includes the latest known security fixes.
SCIM 2 SDK 2.3.1
This release updates the jackson-databind version to 2.9.9.3, which includes a number of security fixes.
SCIM 2 SDK 2.3.0
Serialization and deserialization code for the SCIM 2 DateTime type has been revamped in this release to rely on JAXB rather than deprecated APIs in Jackson. A DateTimeUtils class has been added to perform conversions between SCIM 2 DateTime strings and Java Date and Calendar objects. The ScimDateFormat class is now deprecated and should not be used.
Other fixes and enhancements in this release:
- The build no longer produces multiple Version classes.
- A GroupResource POJO class is now provided for working with SCIM Group resources.
- The
ListResponse#getTotalResults()
method has been updated to return a value of type int rather than long. - Changed the mutability value of the UserResource "groups" attribute to 'readOnly' for conformance with RFC 7643.