Что значит resourceId в OAuth 2.0 с Spring Security - PullRequest
12 голосов
/ 22 декабря 2011

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

Я думаю, что это бесполезно.Что проверяет этот код?

Ответы [ 2 ]

5 голосов
/ 28 марта 2013

Исходя из того, что я собрал, это идентификатор службы ресурсов.

Это становится более понятным, если вы подумаете о том, чтобы разделить ваш сервлет поставщика oauth-токена и ваши серверы ресурсов для целей API-версий. Например, скажем, что клиент A (cA) имеет доступ к api1, а клиент B (cB) имеет доступ к api2, вы реализуете этот доступ, диктуя на своем сервере ресурсов xml для api1, что его resource-id = api1, а затем настраиваете данные клиента для cA у них есть resourceIds = "api1", а также для [cB, api2].

Это позволяет нам защитить доступ к API и отделить его декларацию от, скажем, декларации ролей наших клиентов.

0 голосов
/ 18 апреля 2012

Похоже, он проверяет, авторизован ли клиент для просмотра определенного ресурса. Не уверен, как задействована переменная токена, похоже, что есть еще более релевантный код, который вы не показали.

...