java - 如何将 NTLM 凭据传递给 zuul 请求 header

标签 java rest spring-boot ntlm netflix-zuul

我有一个用于身份验证目的的 Windows 服务“A”(不由我们管理),并且我有基于 Spring-boot 的 REST Api 服务“B”(由我们管理),它使用 Zuul 来路由流量。有一个外部服务“C”(不由我们管理)需要通过我们的 REST API 与 Windows 服务进行通信。由于“A”使用 NTLM 身份验证,我们需要传递来自“C”的请求正文,并在“B”的 header 中添加 ntlm 凭据,并使用 zuul 路由流量。

我的问题是,如何将 Java 中的 NTLM 凭据添加到 zuul header 中的路由流量中?

~贾廷

最佳答案

你需要自己写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;
  }

}

在您的应用程序中,只需确保创建了过滤器 bean,它将自动注册:

@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了解更多信息。

关于java - 如何将 NTLM 凭据传递给 zuul 请求 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41703088/

相关文章:

java - 动态地将 Spinner 添加到relativelayout

java - 如何从Java获取Windows进程描述?

rest - 有效请求但空数据的正确 REST 响应代码是什么?

java - 根据 Activity 配置文件从自定义文件加载属性

spring-boot - 如何在不重启服务器的情况下重新加载 Spring Boot 上的更改?

java - 在类之间传递值以及更新回收器 View 时如何修复 "System services not available to Activities before onCreate"?

Java Spring Boot REST API - 一对多关系的未解析的前向引用

python - 通过 REST API 使用 Django 与 salesforce 对话

java - Spring Boot 2.2.6 - 安全 |更新用户信息后如何更新Principal

java - 如何在 Java 中自动运行 GWT 编译?