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();
}
}