在使用Spring Security的OAuth 2.0中,resourceId意味着什么

时间:2011-12-22 02:53:12

标签: spring oauth-2.0 spring-security-oauth2

org.springframework.security.oauth2.provider.filter中的OAuth2ProtectedResourceFilter:

Collection<String> resourceIds = auth.getClientAuthentication().getResourceIds();
if (resourceIds!=null && !resourceIds.isEmpty() && !resourceIds.contains(resourceId)) {
    throw new InvalidTokenException("Invalid token does not contain resource id ("+resourceId+"): " + token);                   
}

我觉得它没用。这段代码检查了什么?

2 个答案:

答案 0 :(得分:5)

根据我收集的内容,它是资源服务的ID。

当您考虑将apauth令牌提供程序servlet和资源服务器分开以进行api版本控制时,会更加清晰。例如,假设客户端A(cA)可以访问api1而客户端B(cB)可以访问api2,则可以通过在资源服务器xml中为api1指示其resource-id = api1来强制执行此访问,然后配置客户端详细信息对于cA,他们有resourceIds =“api1”,同样对于[cB,api2]。

这使我们能够保护api访问并将其保护声明与我们的客户角色声明分开。

答案 1 :(得分:0)

看起来它会检查客户端是否有权查看特定资源。不确定如何使用令牌变量,看起来有一些你没有显示的更相关的代码。