Chcę skonfigurować mój sprzęgacz sprężynowy w taki sposób, aby przy każdym żądaniu był wywoływany.Jak skonfigurować przechwytywacz sprężynowy, aby wywołać go przy każdym żądaniu?
- Używam przechwytywania w API-GATEWAY (wiosna-Boot)
- Od API-GATEWAY Wołam inne microservices.
- Wezwanie do innych mikroserwisów z API-GATEWAY działa dobrze.
- Inne usługi, które nazywam usługą Node.js, z drugiej strony moja bramka API jest w trakcie rozruchu.
- Wszystkie usługi (Node.js + Spring-Boot) działają na Docker Container.
Mam do czynienia z problemem w Interceptorze. Chcę skonfigurować go w taki sposób, aby przy każdym żądaniu był on nazywany preHandle()
i wykonywać operacje, które w nim napisałem.
Mam jedno zastrzeżenie, o którym chciałbym tutaj wspomnieć.
Jeśli usługi, do których dzwonię są zatrzymane (nie działa), Interceptor działa poprawnie i daje mi odpowiedź, jak nie znaleziono usługi Somename. Jeśli te same usługi są uruchomione w tym czasie, Interceptor nie jest wykonywany.
Tu jest mój urywek kodu
@EnableEurekaClient
@SpringBootApplication
@EnableZuulProxy
@Configuration
public class Application extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Autowired
private TokenValidateInterceptor tokenValidateInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenValidateInterceptor).addPathPatterns("/**");
}
Interceptor
@Component
public class TokenValidateInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
LOG.info("#### Starting TokenValidateInterceptor.preHandle ####");
String apiKey = null;
try {
apiKey = request.getHeader("apikey");
LOG.info("The request come with apikey ======" + apiKey);
LOG.info("Actual apikey ======" + azureApikey);
}
co robi TokenValidateInterceptor wyglądać? – aksss
Zaktualizowałem moje pytanie i wprowadziłem kod TokenValidateInterceptor. –