2017-01-17 2 views
0

Ich habe einen Windows-Dienst "A" wird für die Authentifizierung verwendet (NICHT von uns verwaltet) und ich Spring-Boot-basierten REST API-Dienst "B" (von uns verwaltet) verwendet Zuul, um den Verkehr zu leiten. Es gibt einen externen Dienst "C" (NICHT von uns verwaltet), der über unsere REST Apis mit dem Windows-Dienst kommunizieren muss. Da "A" die NTLM-Authentifizierung verwendet, müssen wir den Anforderungshauptteil von "C" übergeben und die ntlm-Anmeldeinformationen in die Kopfzeilen von "B" einfügen und den Datenverkehr mit zuul weiterleiten.Wie NTLM-Anmeldeinformationen an zuul Anfrage Header übergeben

Meine Frage ist, wie füge ich NTLM-Anmeldeinformationen in Java zum gerouteten Verkehr in Zuul-Headern hinzu?

~ Jatin

Antwort

0

Sie müssen Ihre eigenen ZuulFilter schreiben.

Etwas nach dem Vorbild von

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

} 

In Ihrer App nur sicherstellen, dass die Filter Bean erstellt und es wird automatisch registriert:

@EnableZuulProxy 
@SpringBootApplication 
public class GatewayApplication { 

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

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

} 

Hier finden Sie aktuelle this guide für weitere Informationen.