角色基本授权REST API

时间:2016-08-04 11:02:19

标签: java spring rest authorization roles

我正在为OMS(订单管理系统)构建一个REST API(使用Jersey for rest和Spring for DI和AOP,JDBC Template),其中具有不同角色的多个用户可以访问它包含的资源。

为简单起见,我们有三个角色:客户,经理,管理员

客户只能访问他们的订单。经理可以访问所有订单。管理员可以访问所有订单,还有一些额外的功能。

那我该怎么办: 1.为每个角色创建单独的API 2.所有角色的单一API

2 个答案:

答案 0 :(得分:1)

使用spring,您可以使用spring-mvc和spring-security库,这样可以为api制定清晰简单的perrmission规则:

@PreAuthorize("hasRole('ADMIN')") 
public void doAdminAction();

Docs here

答案 1 :(得分:1)

当然,所有角色的单一API都会根据您使用的安全性授权您的请求,并且您将根据尝试访问它们的用户的角色给予页面权限。

在大多数情况下,当我们讨论RESTful API时,您将从客户端向服务器发送一次凭据(主要是在登录时,它取决于系统)。然后,服务器会返回一个cookie或令牌,其中包含有关角色,邮件或其中任何内容的信息,这取决于您的安全性。现在,在客户端中,根据您从服务器获得的角色,您将指定用户可以访问的页面。