У меня есть REST API, который я написал на Spring Boot. Я хочу написать для него интерфейс с помощью React. Для начала я решил убедиться, что мой фронтенд корректно получает данные от API. Вот мой код контроллера:
@RestController
@RequestMapping("/api/restaurants")
public class RestaurantRestController {
    private final RestaurantService restaurantService;

    public RestaurantRestController(RestaurantService restaurantService) {
        this.restaurantService = restaurantService;
    }

    @GetMapping
//    @PreAuthorize("hasAuthority('everything:read entries')")
    @ApiOperation("Get all restaurants")
    public ResponseEntity<List<RestaurantDto>> getAll() {
        List<RestaurantDto> result = restaurantService.findAll().stream()
                .map(RestaurantDto::fromRestaurant)
                .collect(Collectors.toList());
        return new ResponseEntity<>(result, HttpStatus.OK);
    }
Я написал класс конфигурации на стороне сервера:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry) {

registry.addMapping("/api/**")
        .allowedOrigins("http://localhost:3000/")
        .allowedMethods("GET", "POST, "PUT", "DELETE")
        .allowCredentials(true).maxAge(3600);

  }
}
И я получаю доступ к своему контроллеру из внешнего интерфейса с помощью этого метода:
import axios from 'axios';

const REST_URL = "http://localhost:8080/api/restaurants";

export default class RestaurantsAPI {

    static async getAll() {
        const response = await axios.get(REST_URL);
        return response.data
    }
}
И получаю корректный ответ. Затем я добавляю credentials в свой запрос:
import axios from 'axios';

const REST_URL = "http://localhost:8080/api/restaurants";

export default class RestaurantsAPI {

    static async getAll() {
        const response = await axios.get(REST_URL, {
            auth: {
                username: 'admin', password: 'admin'
            }
        });
        return response.data
    }
}
Теперь я вижу это в консоли: При этом не важно, я оставляю доступ к методу открытым для всех, используя такую ​​конфигурацию:
.antMatchers(HttpMethod.GET, "/api/restaurants").permitAll()
Или наоборот, комментирую эту конфигурацию и применяю аннотацию к методу:
@PreAuthorize("hasAuthority('everything:read entries')")
Я получаю ту же ошибку. Благодаря Postman и JUnit Tests я знаю, что Spring Security настроен и работает правильно. Наверняка кто-то знает в чем причина такого поведения и как это исправить? Спасибо.