Wie bekomme ich die Inbound -Anfrage in einer ExchangeFilterFunction in SpringFramework?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie bekomme ich die Inbound -Anfrage in einer ExchangeFilterFunction in SpringFramework?

by Anonymous » 06 Apr 2025, 19:30

Ich habe eine TokenFilter -Klasse mit einer Methode, die eine ExchangeFilterFunction in meiner API zurückgibt, die SpringFramework verwendet. In der Methode enthält eine Anforderung Variable für die ausgehende Anforderung, in der ich einen OAuth2-Acccess in einen Autorisierungsheader einlasse. Ich möchte jedoch auf die eingehende Anfrage zugreifen, die einen ausgehenden HTTP -Aufruf mit einem Webclient auslöst und die Methode des TokenFilter RenewTokenFilter aufgerufen wird. Das Folgende ist ein Beispiel meines Codes: < /p>

Code: Select all

@Service
public class TokenFilter {
public TokenFilter(WebClient.Builder webClientBuilder, RequestCache requestCache) {
this.webClientBuilder = webClientBuilder;
this.requestCache = requestCache;
}

public ExchangeFilterFunction renewTokenFilter() {
return (request, next) -> {

LOG.info("outbound request path: {}", request.url().getPath());
// I do some processing here.  What is the way to get the inbound request?

return processTokenFilter(request, next);

};
}
}

< /code>
Die Klasse ist wie folgt mit einem Webclient -Builder verdrahtet: < /p>
@Configuration
public class WebClientFilterConfig {
private static final Logger LOG = LoggerFactory.getLogger(WebClientFilterConfig.class);

@Autowired
private WebClient.Builder webClientBuilder;

@Autowired
private TokenFilter tokenFilter;

@PostConstruct
public void addFilterToWebClient() {
LOG.info("configure the renewTokenFilter only once in this config");
webClientBuilder.filter(tokenFilter.renewTokenFilter()).build();
}
}

Top