Spring Oauth, похоже, не расшифровывает секрет клиента - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь добраться до точки, где я могу динамически регистрировать новых клиентов для моего сервера Oauth. Проблема, которая у меня есть (или проблема, которую я пытаюсь понять), заключается в том, что изначально без использования кодировщика паролей клиентские секреты хранятся в БД в виде простого текста.

После поиска в поисках я обнаружил, что нужно установить PasswordEncoder, который будет обрабатывать кодирование / декодирование секрета клиента.

@Override
public void configure(ClientDetailsServiceConfigurer configurer) throws Exception {
    configurer.jdbc(dataSource).passwordEncoder(getPasswordEncoder());
}

Теперь я действительно вижу, что закодированный секрет клиента хранится в БД. Проблема в том, что теперь, когда я запрашиваю токен из службы, я вынужден использовать закодированный секрет клиента, когда я запрашиваю новый токен (вместо использования простой текстовой версии)

curl -k -u 'TEST_USER:05a2fcc7-7759-4354-9366-a7c8cf650aae' http://localhost:8080/oauth/token -X POST -d 'response_type=token&client_id=TEST_USER&username=TEST_USERNAME&password=TEST_PASSWORD&scope=process&grant_type=password'

{"error" : "unauthorized", "error_description": "Для доступа к этому ресурсу требуется полная аутентификация"}

Если я использую закодированный секрет клиента, служба генерирует токен, как и положено. * То, чего я пытался добиться, - это зашифрованный в БД пароль и возможность использовать текстовую версию в запросе.

Что я пропускаю или делаю неправильно?

1 Ответ

0 голосов
/ 15 апреля 2020

В случае, если кто-то еще ищет, решение этого состоит в том, чтобы использовать DelegatingPasswordEncoder вместо BCrypt напрямую, как я использовал (что не было бы очевидно из примера кода в исходном вопросе).

@Bean
public PasswordEncoder getPasswordEncoder(){
    return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...