从 spring 云 zuul API 网关获取 AccessToken
Get AccessToken from spring cloud zuul API Gateway
我们在 spring 云中使用 zuul 作为 API 网关。现在我们想从 zuul 中提取访问令牌以进一步 implementation.Please 提供我们想要如何实施的建议。谢谢
要阅读授权 header,您需要在 ZUUL 中创建一个过滤器,我认为您需要一个预过滤器,您可以根据需要更改它。这是您需要的。
public class TestFilter extends ZuulFilter {
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
final RequestContext ctx = RequestContext.getCurrentContext();
final HttpServletRequest request = ctx.getRequest();
//Here is the authorization header being read.
final String xAuth = request.getHeader("Authorization");
//Use the below method to add anything to the request header to read downstream. if needed.
ctx.addZuulRequestHeader("abc", "abc");
return null;
}
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 1;
}
}
您需要 @Bean
过滤器声明,在 class 中您有 @EnableZuulProxy
@Bean
public TestFilter testFilter() {
return new TestFilter();
}
希望这对您有所帮助。!!!
我们在 spring 云中使用 zuul 作为 API 网关。现在我们想从 zuul 中提取访问令牌以进一步 implementation.Please 提供我们想要如何实施的建议。谢谢
要阅读授权 header,您需要在 ZUUL 中创建一个过滤器,我认为您需要一个预过滤器,您可以根据需要更改它。这是您需要的。
public class TestFilter extends ZuulFilter {
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
final RequestContext ctx = RequestContext.getCurrentContext();
final HttpServletRequest request = ctx.getRequest();
//Here is the authorization header being read.
final String xAuth = request.getHeader("Authorization");
//Use the below method to add anything to the request header to read downstream. if needed.
ctx.addZuulRequestHeader("abc", "abc");
return null;
}
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 1;
}
}
您需要 @Bean
过滤器声明,在 class 中您有 @EnableZuulProxy
@Bean
public TestFilter testFilter() {
return new TestFilter();
}
希望这对您有所帮助。!!!