jasonfagerberg-toast opened a new issue, #725:
URL: https://github.com/apache/directory-scimple/issues/725
The `DefaultPatchHandler` incorrectly replaces omitted fields with `null`
for complex objects such as `name`.
For the given request
```json
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"value": {
"name": {
"givenName": "New Given Name"
}
}
}
]
}
```
the expected output should be
```json
{
"givenName": "New Given Name",
"familyName": "Existing Family Name"
}
```
However, `DefaultPatchHandler` replaces `familyName` with `null`
```
{
"givenName": "New Given Name",
"familyName": null
}
```
I believe this is because `DefaultPatchHandler.applySingleValue` is
replacing `User.name` with the entirety of the request instead of merging the
existing with the request
<img width="1272" alt="Image"
src="https://github.com/user-attachments/assets/3a34489e-b046-48f8-bed4-fc8a3de47e7a"
/>
According to the [SCIM
RFC](https://datatracker.ietf.org/doc/html/rfc7644#section-3.5.2.3)
> o If the target location specifies a complex attribute, a set of
sub-attributes SHALL be specified in the "value" parameter, which
replaces any existing values or adds where an attribute did not
previously exist. Sub-attributes that are not specified in the
"value" parameter are left unchanged.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]