gpt4 book ai didi

netflix-zuul - ZUUL 向下游应用程序发送基本身份验证

转载 作者:行者123 更新时间:2023-12-04 03:09:16 27 4
gpt4 key购买 nike

我有一个 spring boot 微服务,它需要基本的身份验证数据,即固定的用户 ID/密码(如管理员/密码)。我正在使用 Spring cloud netflix 生态系统来编排微服务。 祖尔 是我的 API 网关。

我的问题是如何从 Zuul 向我的应用程序发送基本身份验证详细信息,以便通过 Zuul 访问时它不会要求输入用户 ID/密码。

最佳答案

您可以添加自定义过滤器并将 Authorization header 添加到请求中。
Authorization header 只是 base64 编码的“用户名:密码”字符串。

public class AuthenticatedFilter extends ZuulFilter {

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

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

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

@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
String auth = "username" + ":" + "password";
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("ISO-8859-1")));
String authValue = "Basic " + new String(encodedAuth);
ctx.addZuulRequestHeader(HttpHeaders.AUTHORIZATION, authValue);
return null;
}
}

编辑:您还需要为此过滤器创建 bean,以便 Zuul 将其提取。因此,在您的配置类/主应用程序类中,添加:
@Bean
public AuthenticatedFilter getAuthenticatedFilter () {
return new AuthenticatedFilter();
}

关于netflix-zuul - ZUUL 向下游应用程序发送基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46554328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com