Zuul问题

问题现象:前端请求过来,经过Zuul的前置过滤器,标志位是FilterConstants.PRE_TYPE,进行权限认证,发现认证失败,总是没有返回代码中设置的错误。

问题分析:习惯性思维,权限认证不通过,代码中直接设置了错误返回的Response,并且return null, 也没有经过router这一步,返回的响应数据应该是直接丢给客户,可是为什么却不是自己预期的结果。

问题原因:实现的过程中我还添加了FilterConstants.POST_TYPE,原来我返回的响应还经过了这个Post这个过滤器,再进行了一次处理,导致你在前置过滤器中返回的结果,进行了二次包装,所以不是自己预期的结果。

反思:没有理解透彻Zuul的数据流程原理:

客户请求 -> FilterConstants.PRE_TYPE(前置处理) (必经过程)-> FilterConstants.ROUTE_TYPE(路由处理) -> FilterConstants.ERROR_TYPE (出现错误时处理) -> FilterConstants.POST_TYPE(后置处理) (必经过程)。

你可能感兴趣的:(Zuul问题)