2017-01-17 21 views
0

У меня есть служба Windows «A», используемая для целей аутентификации (НЕ управляется нами), и у меня есть служба REST Api с функцией Spring-boot, управляемая нами, которая использует Zuul для маршрутизации трафика. Существует внешняя служба «C» (не управляемая нами), которой необходимо поговорить с сервисом Windows через наш REST Apis. Поскольку «A» использует аутентификацию NTLM, нам нужно передать тело запроса с «C» и добавить учетные данные ntlm в заголовках на «B» и маршрутизировать трафик с помощью zuul.Как передать учетные данные NTLM в заголовок запроса zuul

Мой вопрос: как мне добавить учетные данные NTLM в Java для маршрутизируемого трафика в заголовках zuul?

~ Jatin

ответ

0

Вы должны написать свой собственный ZuulFilter.

Что-то вдоль линий

import javax.servlet.http.HttpServletRequest; 
import com.netflix.zuul.context.RequestContext; 
import com.netflix.zuul.ZuulFilter; 

public class MyFilter extends ZuulFilter { 

    @Override 
    public String filterType() { 
    return "pre"; 
    } 

    @Override 
    public int filterOrder() { 
    return 1; 
    } 

    @Override 
    public boolean shouldFilter() { 
    return true; 
    } 

    @Override 
    public Object run() { 
    RequestContext ctx = RequestContext.getCurrentContext(); 
    HttpServletRequest request = ctx.getRequest(); 

    // now add your headers to the request 

    return null; 
    } 

} 

В приложении просто убедитесь, что фильтр компонент создается, и он будет автоматически зарегистрирован:

@EnableZuulProxy 
@SpringBootApplication 
public class GatewayApplication { 

    public static void main(String[] args) { 
    SpringApplication.run(GatewayApplication.class, args); 
    } 

    @Bean 
    public MyFilter myFilter() { 
    return new MyFilter(); 
    } 

} 

Посмотрите this guide для получения дополнительной информации.