JHipster:如何限制用户使用 REST 访问自己的数据
Posted
技术标签:
【中文标题】JHipster:如何限制用户使用 REST 访问自己的数据【英文标题】:JHipster: How to restrict user to access own data with REST 【发布时间】:2021-04-16 14:49:04 【问题描述】: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。
-
如何防止用户A通过猜测用户B的ID来加载用户B的设备?
如何避免在每种方法中植入该代码?
我猜 JHipster/SpringSecurity 有概念/对象来处理这些用例。你能指点我,请解释一下如何使用它们吗?
【问题讨论】:
【参考方案1】:也许这个问题有点帮助:Restrict URL access control by id in jhipster
Spring Security 有PostFilter
s 来检查一个对象,例如可以访问由方法加载的。如果您需要更多控制,可以使用访问控制列表进行细粒度的访问控制。
参考资料:
https://docs.spring.io/spring-security/site/docs/5.3.0.RELEASE/reference/html5/#domain-acls https://docs.spring.io/spring-security/site/docs/5.3.0.RELEASE/reference/html5/#method-security-expressions【讨论】:
谢谢!正是我想要的。以上是关于JHipster:如何限制用户使用 REST 访问自己的数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 keycloak rest admin API (Oauth2) 修改用户姓氏后 jhipster 重新加载 OIDC 令牌
我如何通过 jHipster REST api 进行社交登录?