Отправить запрос на авторизацию из React в Spring REST - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь аутентифицировать реагирующее приложение с помощью API отдыха, созданного с помощью Spring Boot и настроенного с помощью Spring Security.

В настоящее время я получаю ошибку 302. Даже с правильными учетными данными пользователя.

Является ли "/ login" правильным URL-адресом по умолчанию для информации аутентификации после запроса?
Кроме того, просто Нужно добавить токен csrf в заголовок и имя пользователя / пароль в теле запроса?

Конфигурация безопасности выглядит следующим образом:

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .userDetailsService(this.userDetailsService)
            .passwordEncoder(User.PASSWORD_ENCODER);

    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        final CookieCsrfTokenRepository tokenRepository = new CookieCsrfTokenRepository();

        http
            .authorizeRequests()
            .antMatchers("/")
            .permitAll()
            .antMatchers("/api/**").authenticated()
            .and()
            .formLogin()
            .permitAll()
            .and()
            .httpBasic()
            .and()
            .logout()
            .logoutSuccessUrl("/")
            .and()
            .csrf()
            .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
    }

Мой пост выглядит так:

...
const data = { 
            userName: this.state.userName,
            password: this.state.password
        };

        fetch('http://localhost:8080/login', {
            method: 'POST',
            headers: {
                'X-XSRF-TOKEN': cookies.get("XSRF-TOKEN")},
            body: JSON.stringify(data),
        }).then(response => {
...

Заранее спасибо

1 Ответ

0 голосов
/ 30 марта 2020

Вы должны дать логин. html страницу в методе настройки, подобном этому.

.formLogin()
    .loginPage("/login.html").permitAll();

Ссылка ссылка

Надеюсь, что это решит вашу проблему :)

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