NetflixOSS Zuul过滤器用于拒绝请求

时间:2015-06-28 11:41:23

标签: spring-cloud netflix netflix-zuul

我正在尝试在简单的spring-cloud-Netflix Api网关(反向代理)中使用ZuulFilter,以便针对自定义身份验证提供程序(通过Rest调用)验证请求。

过滤器应拒绝使用401的未经授权的请求,并且不要将这些请求进一步传递给代理服务。

ZuulFilter甚至可以吗?我没有在Zuuls api中找到文档,示例或其他内容。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我使用pre过滤器来检查请求的身份验证,如果请求未经授权,则返回401并且不再调用后端服务。我在run()函数中这样做:

RequestContext ctx = getCurrentContext();
// do something to check the authentication
if(auth failed){
  ctx.unset();
  ctx.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());
}

ctx.unset()告诉上下文停止此请求,并ctx.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());将http代码设置为401

另见Netflix Zuul - block request routing

答案 1 :(得分:1)

如果您想使用Spring Cloud进行身份验证,请尝试Spring Security Cloud项目。