我有一个使用JHipster生成的基于spring-boot的微服务。
我正在使用 keycloak 作为我的Auth Server。我可以在我的资源(API)上启用基于角色和基于范围的授权。
现在的要求是:根据客户端的角色,我需要限制要在响应中发送的信息(屏蔽属性或使它们无效)。 例如: 考虑使用以下API来获取此人的个人资料
/ api / person / {id}
{
"name": {
"firstName": "Jack",
"lastName": "Sparrow"
},
"gender": "MALE",
"emails": {
"details": [
{
"emailId": "jack.sparrow@gmail.com"
}
]
},
"phones": {
"details": [
{
"phoneNumber": "1234567890",
"countryCode": "+1"
}
]
},
"addresses": {
"details": [
{
"addressLine1": "aaaaaaaa",
"addressLine2": "bbbbbbb",
"city": "cccccc",
"state": "ddddd",
"country": "South Africa",
"postalCode": "987654"
}
]
},
"photo": "string",
"nationality": "South Africa",
"countryOfResidence": "string",
"active": true,
"createdAt": 1537431339569,
"modifiedAt": 1537436600693,
"createdBy": "admin",
"modifiedBy": "admin"
}
现在,当具有 BASIC 角色的人员调用此API时,要求仅显示以下基本信息: -姓名,性别
如果他具有 INTERMEDIATE 的角色,那么我们可以发送的不仅是基本信息,还不是全部信息。例如:姓名,性别,照片,国籍
如果他具有 ADMIN 角色,那么我们可以发送完整的信息。
任何人都可以让我知道实现此目标的最佳方法是什么。
-预先感谢:)