Ответ Webflux Http 404 при добавлении заголовка в запрос

В настоящее время я пытаюсь перенести свое приложение с весенней загрузки 1.5.x на 2.x.x в реактивном стеке. Я столкнулся с какой-то странной проблемой, которую не могу понять. Надеюсь, кто-то знает решение этой проблемы.

Я реализовал API для получения токена пользователя jwt в качестве поля «Авторизация» в заголовке. API - это метод POST, который получает определенные данные json от пользователя в теле, переходит на бэкэнд и обрабатывает их. К сожалению, я продолжаю получать ошибку http 404, когда добавляю в заголовок, нормальный 200, когда я удаляю ее в почтальоне. Вот мой контроллер.

@RestController
@RequestMapping("/user")
@Slf4j
public class UserHandler {

    @Autowired
    private UserService service;

    @Autowired
    private Utility utility;

    @PostMapping("/updateLink")
    public Mono<ServerResponse> addNewAccountLinkAPI(@RequestHeader(name = "Authorization") String id, @RequestBody UpdateAccountLink request){
        return Mono.just(request)
                .flatMap(s -> service.addNewAccountLink(s))
                .flatMap(s -> ok().body(BodyInserters.fromObject(new RespWrap("Success", new Date(), null, s))))
                .switchIfEmpty(badRequest().body(BodyInserters.fromObject(new RespWrap("Failed", new Date(), "Failed to create new link", null))));
    }
}

Вот моя простая конфигурация безопасности

@Configuration
@EnableWebFluxSecurity
@EnableWebFlux
public class ResourceServerConfig implements WebFluxConfigurer {

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http, FirebaseAuthenticationManager manager) {
        http
                .authorizeExchange().anyExchange().permitAll()
                .and().csrf().disable();
        return http.build();
    }
}

Кто-нибудь может указать мне на проблему. Это похоже на проблему отсутствия конфигурации.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
444
1

Ответы 1

Я вижу две проблемы с вашими фрагментами кода.

Во-первых, вам не следует добавлять @EnableWebFlux, поскольку он полностью отключает автоконфигурацию, выполняемую Spring Boot. То же самое и для @EnableWebMvc в приложении Spring MVC.

Во-вторых, вы смешиваете аннотации WebFlux и функционал WebFlux. Аннотации, которые вы используете, подходят, но тип ServerResponse следует использовать только при написании функциональных обработчиков. Вместо этого вы должны попробовать здесь использовать ResponseEntity.

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

Bocky 21.12.2018 17:36

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