我正在尝试在简单的spring-cloud-Netflix Api网关(反向代理)中使用ZuulFilter,以便针对自定义身份验证提供程序(通过Rest调用)验证请求。
过滤器应拒绝使用401的未经授权的请求,并且不要将这些请求进一步传递给代理服务。
ZuulFilter甚至可以吗?我没有在Zuuls api中找到文档,示例或其他内容。
有什么建议吗?
答案 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
答案 1 :(得分:1)
如果您想使用Spring Cloud进行身份验证,请尝试Spring Security Cloud项目。