Reputation: 1
I am using WebFlux. In the controller
@PostMapping("login-initiation/{registrationId}")
public Mono<ResponseEntity<Void>> loginInitiation(@PathVariable String registrationId, ServerWebExchange exchange) {
I calculate the value of
LoginInitiationRequest loginInitiationRequest.
Then, I perform a redirect to the standard endpoint to create a request to the OAuth2 Authorization Server in a custom method of a class that implements ServerOAuth2AuthorizationRequestResolver.
exchange.getAttributes().put("loginInitiationRequest", loginInitiationRequest);
return Mono.just(ResponseEntity.status(HttpStatus.FOUND)
.location(URI.create("/oauth2/authorization/" + registrationId))
.build());
How can I transfer the loginInitiationRequest value from the controller to the method
in another class during the redirect?
I tried using:
exchange.getAttributes().put("loginInitiationRequest", loginInitiationRequest);
But after the redirect, in the method:
private Mono<OAuth2AuthorizationRequest> customizeRequest(ServerWebExchange exchange, OAuth2AuthorizationRequest originalRequest) {
return exchange.getSession()
.flatMap(session -> {
LoginInitiationRequest loginInitiationRequest = (LoginInitiationRequest) session.getAttribute("loginInitiationRequest");
the list of session's arguments is empty and as result loginInitiationRequest = null.
Upvotes: 0
Views: 35