2011-12-22 43 views
10

OAuth2ProtectedResourceFilter:是什麼RESOURCEID中的OAuth 2.0意味着使用Spring Security在org.springframework.security.oauth2.provider.filter

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);     
} 

我認爲這是沒有用的。這段代碼檢查什麼?

回答

0

它看起來像檢查客戶端是否有權查看特定資源。不確定如何涉及標記變量,它看起來像有一些更相關的代碼,你沒有顯示。

3

根據我收集的信息,它是資源服務的ID。

當您考慮將oauth令牌提供程序servlet與資源服務器分離以實現api版本控制時,它變得更加清晰。例如,假設客戶端A(cA)可以訪問api1並且客戶端B(cB)可以訪問api2,則可以通過在資源服務器xml中爲api1指定其資源id = api1來強制執行此訪問,然後配置客戶端詳細信息對於cA他們有resourceIds =「api1」,對於[cB,api2]也是如此。

這可以讓我們保護api訪問權限,並將其保護聲明與客戶角色聲明分開。

+5

resourceIds與範圍有什麼不同? – yankee 2015-11-08 09:57:46