This is an automated email from the ASF dual-hosted git repository.
sgarofalo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new e5e69dba99 [SYNCOPE-1836] Propagate password changes coming from SCIM
extension
e5e69dba99 is described below
commit e5e69dba99bf87d68e897c5af38636faf5cb11de
Author: sgarofalo <[email protected]>
AuthorDate: Mon Nov 4 17:07:06 2024 +0100
[SYNCOPE-1836] Propagate password changes coming from SCIM extension
---
.../java/org/apache/syncope/core/logic/SCIMDataBinder.java | 3 ++-
.../test/java/org/apache/syncope/fit/core/SCIMITCase.java | 13 +++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git
a/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
b/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
index 5ec9bce174..59ec383a31 100644
---
a/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
+++
b/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
@@ -836,7 +836,8 @@ public class SCIMDataBinder {
case "password" -> {
if (op.getOp() != PatchOp.remove &&
!CollectionUtils.isEmpty(op.getValue())) {
- userUR.setPassword(new
PasswordPatch.Builder().value(op.getValue().get(0).toString()).build());
+ userUR.setPassword(new
PasswordPatch.Builder().value(op.getValue().get(0).toString()).resources(
+ resources).build());
}
}
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
index ed7dc42ea1..082862a7a1 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
@@ -677,6 +677,19 @@ public class SCIMITCase extends AbstractITCase {
user = response.readEntity(SCIMUser.class);
assertTrue(user.getEmails().stream().noneMatch(v ->
"home".equals(v.getType())));
+
+ // 7. update with path, update password
+ body =
+ "{"
+ +
"\"schemas\":[\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],"
+ + "\"Operations\":[{"
+ + "\"op\":\"replace\","
+ + "\"path\":\"password\","
+ + "\"value\":\"Password123!\""
+ + "}]"
+ + "}";
+ response =
webClient().path("Users").path(user.getId()).invoke(HttpMethod.PATCH, body);
+ assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
}
@Test