0

我在 mu 用户商店中有一个具有以下属性的用户。

{
  "id": "bfae138c-9f57-4ff1-ab63-599f2034371f",
  "schemas":[
    "urn:scim:schemas:core:1.0"
  ],
  "name":{
    "formatted": "Ms. Barbara J Jensen III",
    "familyName": "Jensen",
    "givenName": "Barbara"
  },
  "userName": "bjensen123",
  "externalId": "bjensen",
  "meta":{
    "lastModified": "2015-05-25T08:59:28",
    "location": "https://localhost:9443/wso2/scim/Users/bfae138c-9f57-4ff1-ab63-599f2034371f",
    "created": "2015-05-25T08:59:28"
  }
}

我正在使用以下方法体向该资源发送一个放置请求。

{
  "schemas":["urn:scim:schemas:core:1.0"],
  "userName":"bjensen123",
  "name":{
    "formatted":"Ms. Bb",
  }
}

我的结果资源的名称属性应该是什么?

"name":{
   "formatted":"Ms. Bb",
}

或者

"name":{
     "formatted": "Ms. Bb",
    "familyName": "Jensen",
    "givenName": "Barbara"
  }
4

1 回答 1

1

PUT 请求将作为完整更新处理,而不是 PATCH,它只会更新指定的属性,并且对于实施者是可选的(根据 SCIM 1.1 规范)。PUT 的目的是请求者首先执行用户的读取 (GET),更改所需的属性,并提供全面的更新,以包括那些实际上没有更改的属性(密码是一个例外)。PUT 请求中未使用值指定的任何属性都将被吹走。因此,根据您的示例,PUT 响应将返回为:

"name":{"formatted":"Ms. Bb"}

如果您不想丢失 familyName 和 givenName,则还必须重新指定它们(以及您不想删除的任何其他属性)。这是规范定义: http ://www.simplecloud.info/specs/draft-scim-api-01.html

于 2015-05-26T16:33:06.033 回答