У меня есть несколько микро-сервисов, работающих на серверах аутентификации Ribbon, Eureka и OAuth2. Все работало как шарм. Затем я представил Zuul API Gateway и добавил класс регистрации для регистрации моих запросов.
Zuul Gateway yml
spring:
application:
name: zuul-api-gateway-service
server:
port: 8765
eureka:
client:
service-url:
defaultZone: http://theusername:thepassword@localhost:8761/eureka
register-with-eureka: true
zuul:
sensitiveHeaders: Cookie,Set-Cookie, Authorization
routes:
job-service:
path: /api/**
url: http://localhost:7084
jobposting-service:
path: /api/**
url: http://localhost:6084
stripPrefix: false
oauth:
path: /auth/**
url: http://localhost:9191
Zuul Appplication class
@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
public class ZuulApiGatewayServerApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApiGatewayServerApplication.class, args);
}
}
LoggingFilter
@Component
public class ZuulLoggingFilter extends ZuulFilter {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public String filterType() {
return "pre"; //pre post error
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() throws ZuulException {
HttpServletRequest request = RequestContext.getCurrentContext().getRequest();
logger.info("request -> {} request uri -> {}", request, request.getRequestURI());
//
// RequestContext ctx = RequestContext.getCurrentContext();
// // Add a custom header in the request
// ctx.addZuulRequestHeader("Authorization",
// request.getHeader("Authorization"));
// logger.info(String.format("%s request to %s", request.getMethod(),
// request.getRequestURL().toString()));
return null;
}
}
Тогда мои запросы API оказались не работающими. Любой запрос, даже с токеном авторизации, прикрепленным к заголовку, возвращает 401 несанкционированный. Регистратор также ничего не регистрирует.
Заранее спасибо