Задать вопрос
hudrogen
@hudrogen

Spring Security. Как реализовать BaseAuth аутентификацию без появления нативного окна браузера?

Реализую безопасность в Java REST сервисе при помощи Spring Security.
Имею файл spring-security.xml с конфигурацией:
<b:beans xmlns=""http://www.springframework.org/schema/security"
                          ...прочие схемы
   <http use-expressions="true">
      <csrf disables="true"/>
      <intercept-url pattern="/**" access="isAuthenticated()"/>
    <http-basic/>
  </http>

<!-- Здесь ссылка на аутентикейшн провайдер-->
</b:beans>


При таком способе, при обращении к урлу реста, появляется нативное всплывающее окно браузера с предложением ввести логин/пароль. Стоит задача сдружить такой бэк с фронтом. Реально ли это сделать используя текущую конфигурацию spring-security? Или можно сконфигурировать spring-security так, чтобы это нативное окно не появлялось?
  • Вопрос задан
  • 291 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
При запросе с фронтенда вам нужно передавать Header "Authorization: Basic token", где token = user:password в Base64. Сгенерировать токен можно такой командой:
echo -n "user:password" | base64
Далее, запрос с помощью curl:
curl -i -H 'Authorization: Basic dXNlcjpwYXNzd29yZA==' http://localhost:8080/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@SergiiSl
чтоб окно не появлялось, можно на стороне бэка убрать http-basic и использовать аутентификацию формой...а если только на стороне фронта, то с каждым запросом нужно разрешить передавать учетные данные(заголовок , куки)
fetch('https://example.com', {
  credentials: 'include'  
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы