播放框架路由参数授权

时间:2015-12-02 10:26:32

标签: java playframework authorization playframework-2.3

我的页面上有REST api,我使用Play会话进行身份验证。

问题在于授权,我有几十个端点看起来像这样:

GET          /api/domains/:domainId/properties/:propertyId/reports   

我可以在每个控制器方法上添加if语句,以检查用户是否拥有属性的权限,但我是否可以在某种程度上全局处理?

我找到了这个模块,但它似乎没有处理参数,只是检查用户是否在某个组/角色中。 https://www.playframework.com/documentation/1.0.2.1/secure

2 个答案:

答案 0 :(得分:1)

我使用自定义RequestHandler解决了这个问题。在那里,您可以从路径中提取参数并验证它们。 (在scala我甚至可以修改请求路由以避免在所有路由中重复这些参数,我不知道你是否也可以在java中执行此操作)。 (看到: https://www.playframework.com/documentation/2.4.x/JavaHttpRequestHandlers

答案 1 :(得分:0)

您可以使用Security.Authenticated注释作为详细here。有关更具体的权限,我建议Deadbolt