У меня есть внешний URL-адрес, и я хочу передать заголовок запроса через фильтр zuul для запуска приложения.
Может кто-нибудь, пожалуйста, помогите мне в этом.
В моем пользовательском префильтре я написал это:
@Component
public class CustomFilters extends ZuulFilter {
public static final Logger logger = LoggerFactory.getLogger(CustomFilters.class);
@Override
public String filterType() {
return "route";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
logger.info("executing run ");
RequestContext ctx = RequestContext.getCurrentContext();
ctx.addZuulRequestHeader("x-forwarded-host", "<external url>");
ctx.addZuulRequestHeader("x-forwarded-proto", "https");
ctx.addZuulRequestHeader("x-forwarded-port", "8800");
ctx.addZuulRequestHeader("key", "id);
return null;
}
}
app.properties:
ribbon.eureka.enabled=false
server.port=8080
zuul.routes.books.sensitive-headers=
zuul.routes.books.path = /books/
zuul.routes.books.url = <ext url>
Пример приложения:
Это дает мне URL для отдыха, через который я перенаправляю на внешний URL, определенный выше в моем файле свойств.
public class SampleApplication {
@RequestMapping(value = "/check")
public String available() {
return "available!";
}
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
app.properties:
spring.application.name=book
server.port=8090
Снимок экрана