Использование 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
, Так как это весна под крышками, вы можете легко заменить один боб.