On 13/04/2012 14:23, ernst Developer wrote:
Yes you are right, but I copied from different methods, to make it
clear, and did do that good enough.
How does this look?
So the correct flow is:
UserMod userMod = new UserMod();
userMod.setId(userId);
Set<AttributeMod> attributesToBeUpdated = new
HashSet<AttributeMod>();
AttributeMod ourProperty = new AttributeMod();
ourProperty.setSchema(ourPropertyName);
ourProperty.setValuesToBeAdded(Arrays.asList(new
String[]{isoDateTime}));
attributesToBeUpdated.add(ourProperty);
userMod.setAttributesToBeUpdated(attributesToBeUpdated);
UserTO modifiedUser =
restTemplate.postForObject(url, userMod, UserTO.class);
Ernst,
this looks very strange: I cannot think of a "general" reason why this
password gets modified.
To be sure, I've added the following test case to UserTestITCase.java in
Syncope core sources, and this run smoothly:
@Test
public void updateWithoutPassword() {
UserTO userTO =
getSampleTO("[email protected]");
userTO = restTemplate.postForObject(BASE_URL + "user/create",
userTO, UserTO.class);
assertNotNull(userTO);
String encodedPwd = userTO.getPassword();
AttributeMod attributeMod = new AttributeMod();
attributeMod.setSchema("subscriptionDate");
attributeMod.addValueToBeAdded("2010-08-18T16:33:12.203+0200");
UserMod userMod = new UserMod();
userMod.setId(userTO.getId());
userTO = restTemplate.postForObject(BASE_URL + "user/update",
userMod, UserTO.class);
assertNotNull(userTO);
assertEquals(encodedPwd, userTO.getPassword());
}
I'd suggest to check if there is something in your own setup (maybe
bound with sync / provisioning) or even if some URL / parameter are not
correct.
Regards.
--
Francesco Chicchiriccò
Apache Cocoon Committer and PMC Member
http://people.apache.org/~ilgrosso/