Rest 休息授权

Rest 休息授权,rest,Rest,我们有Rest调用,比如方法:GET;其中resource id是绑定到登录用户的资源的id。我们不希望任何用户能够访问其他用户的资源 因此,为了确定资源是否绑定到当前登录用户,我们必须执行一些查询(联接),以知道此资源id为登录用户的资源。嗯,这是我们的许多案例之一。我们当然不能用一种通用的AOP方法来决定登录用户是否有权查看所请求的资源,因为决定这一点的逻辑对于不同的资源是不同的。另一种解决方案是:在每个“资源”数据库表中都有“createdBy”列,这样决定的逻辑就相当简单了,即只需检查当

我们有Rest调用,比如方法:GET;其中resource id是绑定到登录用户的资源的id。我们不希望任何用户能够访问其他用户的资源


因此,为了确定资源是否绑定到当前登录用户,我们必须执行一些查询(联接),以知道此资源id为登录用户的资源。嗯,这是我们的许多案例之一。我们当然不能用一种通用的AOP方法来决定登录用户是否有权查看所请求的资源,因为决定这一点的逻辑对于不同的资源是不同的。另一种解决方案是:在每个“资源”数据库表中都有“createdBy”列,这样决定的逻辑就相当简单了,即只需检查当前登录用户==资源记录的createdBy列。但后者似乎有点古怪。有什么建议吗?我们如何设计解决方案

您如何知道登录的用户?我们在cookie中获取userId,然后使用userId从数据库中获取user对象,并检查user对象是否已登录==true。“因为决定登录的逻辑对于不同的资源是不同的”听起来您需要每个资源中的逻辑来确定用户是否可以看到它。这似乎更像是一个业务逻辑问题,而不是REST/Http问题。目前如何计算用户权限或角色?同意。内部实现细节与REST无关。此外,使用cookie来实现这一点也不是RESTful的,因为它是与HTTP的不必要的耦合。您应该在每个请求上使用授权标头。我以前没有找到此标头,但已经提出了相同的问题,但尚未回答。我正在寻找通过身份验证的授权,具体来说是资源级别授权。