У меня есть микросервис на основе весенней загрузки, созданный с помощью JHipster.
Я использую keycloak в качестве моего сервера аутентификации.Я мог бы включить авторизацию на основе ролей и области действия для своих ресурсов (apis).
Теперь требуется следующее: исходя из роли клиента, мне нужно ограничить информацию, отправляемую в ответе (либо замаскировать атрибуты, либо аннулировать их).Например: рассмотрите следующие 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, требование состоит в том, чтобы показывать только основную информацию, такую как: - имя, пол
Если у него есть роль ПРОМЕЖУТОЧНАЯ , тогда мы можем отправить что-то более простое, но не полноеИнформация.Например: имя, пол, фотография, национальность
Если он имеет роль ADMIN , мы можем отправить полную информацию.
Может кто-нибудь, пожалуйста, дайте мне знать, каков наилучший подход для достижения этой цели.
- Заранее спасибо:)