Перенаправление на внешний абсолютный URL-адрес в spring-boot-starter-webflux без View Resolver - PullRequest
0 голосов
/ 25 апреля 2019

Я создаю приложение, используя spring-webflux. Я показал контроллер, который имеет метод, который является реактивным и возвращает Mono в качестве возвращаемого типа. Стек является реактивным. Запрос поступает в браузер, и ожидается, что API перенаправит пользователя в браузере на URL, основанный на некоторых вычислениях, которые являются асинхронными по своей природе. Вместо перенаправления я получаю ответ, как показано ниже.

Есть ли способ достичь этого?

{
"defaultCharset": "UTF-8",
"requestContextAttribute": null,
"beanName": null,
"applicationContext": null,
"url": "https://my.box.com/service/auth/oauth/authorize?client_id=3d58a6ae9da221193d688feb521cf3f78ab8f1e04b3110813798b6feb877aa4d&response_type=code&redirect_uri=https://memini.serveo.net/api/v1/sources/BOX/connection?state=79299a49-e716-4ac5-a4f1-d16a2fdf6de5",
"contextRelative": true,
"statusCode": "SEE_OTHER",
"propagateQuery": false,
"hosts": null,
"redirectView": true,
"supportedMediaTypes": [
{
"type": "text",
"subtype": "html",
"parameters": {
"charset": "UTF-8"
},
"qualityValue": 1,
"wildcardType": false,
"wildcardSubtype": false,
"charset": "UTF-8",
"concrete": true
}
]
}

1 Ответ

0 голосов
/ 25 апреля 2019

Хорошо заставил это работать, используя код ниже

@GetMapping("/")
Mono<Void> redirect(ServerHttpResponse response) {
  response.setStatus(TEMPORARY_REDIRECT);
  response.getHeaders().setLocation(URI.create(authorizationUrl));
  return response.setComplete();
}
...