JHipster:如何限制用户使用 REST 访问自己的数据

JHipster: How to restrict user to access own data with REST

JHipster 实现了几种身份验证和授权的最佳实践。 这里主要描述:https://www.jhipster.tech/security/。 但我仍然没有看到如何设计解决方案的示例,该解决方案不涉及为非常常见的用例在各处放置用户验证逻辑。

假设您有一个使用 REST-API 的网页,例如 BankAccountResource from JHipster Sample App,您希望将其限制为仅 ADMIN 角色或当前登录的用户。假设您为客户提供了 50 项此类服务:BankAccount、Address、BillingAddress、UserData、Devices……对于每个资源,必须限制 GET 和 UPDATE。同时加载设备 /api/device/{id} 可能不包括用户 ID。

  1. 如何通过猜测用户 A 的 ID 来阻止用户 A 加载用户 B 的设备?
  2. 如何避免在每个方法中植入该代码?
  3. 我猜 JHipster/SpringSecurity 有 concept/objects 来处理此类用例。你能指点我,解释一下如何使用它们吗?

也许这个问题有点帮助:

Spring 安全 hast PostFilters 来检查一个对象,例如可以访问由方法加载的。如果您需要更多控制,可以使用访问控制列表进行细粒度访问控制。

参考文献: