Что означает 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
Похоже, он проверяет, разрешено ли клиенту просматривать определенный ресурс. Не знаете, как задействована переменная-токен, похоже, есть еще более подходящий код, который вы не показывали.