2011-12-22 4 views
10

OAuth2ProtectedResourceFilter 의미 하는가 무엇 :는 RESOURCEID 봄 보안과의 OAuth 2.0 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입니다.

api 버전 지정을 위해 oauth 토큰 공급자 서블릿과 리소스 서버를 분리하면 더 명확 해집니다. 예를 들어 클라이언트 A (cA)가 api1에 액세스하고 클라이언트 B (cB)가 api2에 액세스 할 수 있다고 가정하면 리소스 서버 xml에서 resource-id = api1 인 api1을 지정하고 클라이언트 세부 정보를 구성하여이 액세스를 시행합니다 cA의 경우 resourceIds = "api1"이고 [cB, api2]의 경우도 마찬가지입니다.

이렇게하면 API 액세스를 보호하고 클라이언트 선언과 별도로 보호 선언을 유지할 수 있습니다.

+5

resourceIds는 범위와 어떻게 다른가요? – yankee