SpringBoot OAuth2: Назначение функции .scopes ()? - PullRequest
0 голосов
/ 25 июня 2018

В настоящее время я изучаю реализацию SpringBoots OAuth2.0 и наткнулся на следующий учебник: http://www.tinmegali.com/en/2017/06/25/oauth2-using-spring/.

Он содержит этот фрагмент кода:

@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
    clients.inMemory()
           .withClient("trusted-app")
           .authorizedGrantTypes("client_credentials", "password", "refresh_token")
           .authorities("ROLE_TRUSTED_CLIENT")
           .scopes("read", "write")
           .resourceIds(resourceId)
           .accessTokenValiditySeconds(accessTokenValiditySeconds)
           .refreshTokenValiditySeconds(refreshTokenValiditySeconds)
           .secret("secret");
}

Я посмотрелпо всему интернету для документации по функции scopes, но я просто не могу найти, что она делает, в том числе и по официальной ссылке на SpringBoot API.Все, что я могу сказать наверняка, это то, что он принимает несколько string параметров.

Что именно делает функция scopes() в приведенном выше фрагменте?Какая практическая разница при передаче в ("read", "write") по сравнению с передачей в "all" или чем-то совершенно произвольным, например "donkey"?

1 Ответ

0 голосов
/ 25 июня 2018

Насколько я понимаю, это socope вашей клиники.При создании экземпляра BaseClinetDetails.java вы можете установить любую область для вашей клиники, а при аутентификации вы можете использовать метод isScoped (), чтобы проверить, была ли предоставлена ​​какая-либо область.Если нет, тогда область запроса будет игнорироваться.

Если isScoped () возвращает true, вы можете использовать метод getScope (), чтобы получить все области и принять решение, является ли запрос проверки подлинности вашей предопределенной областью или нет.

Хотя документация не ясна, я попытался установить случайную строку, и это не остановило мир.

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