SpringBoot OAuth2: Назначение функции .secret ()? - 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");
}

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

Что именно делает функция secret() в приведенном выше фрагменте кода?Что SpringBoot делает с параметром этой функции?

1 Ответ

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

secret() фактически означает client_secret. Когда вы собираетесь выдать токен, ваш запрос должен быть авторизован сервером. следовательно client_id и client_secret для авторизации. В вашем запросе http вы должны отправить заголовки client_id и client_secret в http (возможно, в формате base64). Она называется Базовая авторизация . А для аутентификации вам необходимо отправить имя пользователя и пароль.

Возможно, вам следует отправить в заголовок http что-то подобное (Базовый: "base64 значение ваших client_id и client_secret")

"Authorization":"Basic dHJ1c3RlZC1hcHA6c2VjcmV0"

Если вы используете почтальона, тогда ваша конечная точка токена будет http://host:port/contextPath/oauth/token, и запрос гердера будет enter image description here

Если вы перейдете на вкладку Заголовки, то увидите, как ваши client_id и secret конвертируются в формат base64. В теле запроса вы должны отправить grant_type: password для токена в качестве пары ключ-значение.

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