wso2 / product-is

Welcome to the WSO2 Identity Server source code! For info on working with the WSO2 Identity Server repository and contributing code, click the link below.
http://wso2.github.io/
Apache License 2.0
744 stars 723 forks source link

Updating username using /users endpoint failed SCIM2 #5118

Open Buddhimah opened 5 years ago

Buddhimah commented 5 years ago

How to reproduce: use Product is 5.8- Beta3

create a user using below curl

curl -v -k --user admin:admin --data '{"schemas":[],"name":{"familyName":"jackson","givenName":"kim"},"userName":"kim","password":"kimwso2","emails":[{"primary":true,"value":"kim.jackson@gmail.com","type":"home"},{"value":"kim_j@wso2.com","type":"work"}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users

try to update the user name

curl -v -k --user admin:admin -X PUT -d '{"schemas":[],"name":{"familyName":"joghnn","givenName":"kim"},"userName":"kim123","emails":[{"value":"kim_j@wso2.com","type":"work"},{"value":"kim@gmail.com","type":"home"}]}' --header "Content-Type:application/json" https://localhost:9443/scim2/Users/4cc9a4bc-d290-41f5-bc6d-01206809269b error: {"schemas":["urn:ietf:params:scim:api:messages:2.0:Error"],"detail":"Error occured while trying to update the user","status":"500"}

malithie commented 5 years ago

updating username is not something allowed within identity server. It should be a readonly claim and such update should return a proper error message mentioning the fact of being tried to update a read only claim

AsadShakeel commented 4 years ago

Ok, what about the other claims? I tried to update the name.familyName but got the message

{
    "schemas": "urn:ietf:params:scim:api:messages:2.0:Error",
    "scimType": "invalidValue",
    "detail": "Required attribute userName is missing in the SCIM Object.",
    "status": "400"
}

then I also added the non-altered username property then it says

{
    "schemas": "urn:ietf:params:scim:api:messages:2.0:Error",
    "detail": "Error while updating attributes of user: testuser2",
    "status": "500"
}

P.S: I'm using wso2 5.6.0 IS.