private Mono<Void> sendRedirectForAuthorization(ServerWebExchange exchange, OAuth2AuthorizationRequest authorizationRequest) { return Mono.defer(() -> { Mono<Void> saveAuthorizationRequest = Mono.empty(); if (AuthorizationGrantType.AUTHORIZATION_CODE.equals(authorizationRequest.getGrantType())) { saveAuthorizationRequest = this.authorizationRequestRepository .saveAuthorizationRequest(authorizationRequest, exchange); } URI redirectUri = UriComponentsBuilder .fromUriString(authorizationRequest.getAuthorizationRequestUri()) .build(true).toUri(); return saveAuthorizationRequest .then(this.authorizationRedirectStrategy.sendRedirect(exchange, redirectUri)); }); } }
@Override public Mono<Void> onAuthenticationFailure( WebFilterExchange webFilterExchange, AuthenticationException exception) { return this.redirectStrategy.sendRedirect(webFilterExchange.getExchange(), this.location); } }
@Override public Mono<Void> onLogoutSuccess(WebFilterExchange exchange, Authentication authentication) { return this.redirectStrategy .sendRedirect(exchange.getExchange(), this.logoutSuccessUrl); }
@Override public Mono<Void> commence(ServerWebExchange exchange, AuthenticationException e) { return this.requestCache.saveRequest(exchange) .then(this.redirectStrategy.sendRedirect(exchange, this.location)); }
@Override public Mono<Void> onAuthenticationSuccess(WebFilterExchange webFilterExchange, Authentication authentication) { ServerWebExchange exchange = webFilterExchange.getExchange(); return this.requestCache.getRedirectUri(exchange) .defaultIfEmpty(this.location) .flatMap(location -> this.redirectStrategy.sendRedirect(exchange, location)); }
/** * {@inheritDoc} */ @Override public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) { return Mono.just(exchange) .filter(this::isInsecure) .flatMap(this.requiresHttpsRedirectMatcher::matches) .filter(matchResult -> matchResult.isMatch()) .switchIfEmpty(chain.filter(exchange).then(Mono.empty())) .map(matchResult -> createRedirectUri(exchange)) .flatMap(uri -> this.redirectStrategy.sendRedirect(exchange, uri)); }
private Mono<Void> sendRedirectForAuthorization(ServerWebExchange exchange, OAuth2AuthorizationRequest authorizationRequest) { return Mono.defer(() -> { Mono<Void> saveAuthorizationRequest = Mono.empty(); if (AuthorizationGrantType.AUTHORIZATION_CODE.equals(authorizationRequest.getGrantType())) { saveAuthorizationRequest = this.authorizationRequestRepository .saveAuthorizationRequest(authorizationRequest, exchange); } URI redirectUri = UriComponentsBuilder .fromUriString(authorizationRequest.getAuthorizationRequestUri()) .build(true).toUri(); return saveAuthorizationRequest .then(this.authorizationRedirectStrategy.sendRedirect(exchange, redirectUri)); }); } }