0
我们在春季云中使用zuul作为API网关。现在我们要从zuul中提取访问令牌以供进一步实现。请提供建议我们如何实现。谢谢从Spring云zuul API网关获取AccessToken
我们在春季云中使用zuul作为API网关。现在我们要从zuul中提取访问令牌以供进一步实现。请提供建议我们如何实现。谢谢从Spring云zuul API网关获取AccessToken
要阅读授权标题,您需要在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
声明过滤器类中,你必须@EnableZuulProxy
@Bean
public TestFilter testFilter() {
return new TestFilter();
}
希望这有助于。!
你可以让zuul做认证。一些链接让你开始https://jmnarloch.wordpress.com/2015/10/21/spring-cloud-eureka-zuul-and-oauth2-scaling-out-授权服务器/ http://presos.dsyer.com/decks/microservice-security.html#slide25 –
嗨Grinish,感谢您的回复,我们已经实现了身份验证,但我们希望在我们的应用程序中为用户管理提供访问令牌。我们希望提取访问令牌并将其存储在redis会话中以供进一步实施。请提供建议。谢谢。 –
如果我正确理解您的问题,您必须拥有某种您可以在zuul中读取的授权标头,并将访问令牌从那里传递给下游服务。要读取它并将其发送到下游,您将需要使用pre zuul过滤器。 –