Что означает resourceId в OAuth 2.0 с Spring Безопасность

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

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

Ответ 1

Основываясь на том, что я собрал, это идентификатор ресурсной службы.

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

Это позволяет нам защитить доступ api и сохранить его объявление защиты отдельно от, скажем, объявления наших клиентов.

Ответ 2

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