我的页面上有REST api,我使用Play会话进行身份验证。
问题在于授权,我有几十个端点看起来像这样:
GET /api/domains/:domainId/properties/:propertyId/reports
我可以在每个控制器方法上添加if
语句,以检查用户是否拥有域或属性的权限,但我是否可以在某种程度上全局处理?
我找到了这个模块,但它似乎没有处理参数,只是检查用户是否在某个组/角色中。 https://www.playframework.com/documentation/1.0.2.1/secure
答案 0 :(得分:1)
我使用自定义RequestHandler解决了这个问题。在那里,您可以从路径中提取参数并验证它们。 (在scala我甚至可以修改请求路由以避免在所有路由中重复这些参数,我不知道你是否也可以在java中执行此操作)。 (看到: https://www.playframework.com/documentation/2.4.x/JavaHttpRequestHandlers)
答案 1 :(得分:0)