Использование grails-spring-security-rest для выполнения базовой проверки подлинности на основе токенов HTTP

Я думаю, возможно ли использовать плагин Grails Spring Security Rest[1] для аутентификации запросов API с использованием HTTP Basic Authentication?

Примером является Stripe API [2], в котором запросы аутентифицируются с помощью отправки токена в поле "Имя пользователя" базовой аутентификации HTTP.

curl https://api.stripe.com/v1/charges -u sk_test_BQokikJOvBiI2HlWgH4olfQ2

curl использует флаг -u для передачи основных учетных данных аутентификации (добавление двоеточия после ключа API не позволит вам запрашивать пароль).

Образец тестового API-ключа был предоставлен во всех примерах на странице, поэтому вы можете протестировать любой пример прямо сейчас.

[1] http://grails.org/plugin/spring-security-rest[2] https://stripe.com/docs/api

1 ответ

Решение

Проблема с упомянутым вами подходом состоит в том, что поддержка HTTP Basic Security в Spring Security Core не ожидает получения токена в имени пользователя. Он попытается аутентифицировать запрос настроенных провайдеров аутентификации (например, БД) с пустым паролем.

Вам придется заменить RestAuthenticationFilter добавив поведение, подобное предоставленному BasicAuthenticationFilter, Так как это весна под крышками, вы можете легко заменить один боб.

Другие вопросы по тегам