spring cloud gateway 过滤器和 spring cloud security 中的过滤器 执行顺序 详细讲解 如果登录接口来了 网关会拦截吗?
时间: 2023-07-31 16:06:56 浏览: 198
详谈springboot过滤器和拦截器的实现及区别
Spring Cloud Gateway和Spring Cloud Security中的过滤器执行顺序是不同的。
在Spring Cloud Gateway中,过滤器的执行顺序如下:
1. GlobalFilter:全局过滤器,在请求进入网关时执行。
2. RouteFilter:路由过滤器,根据路由规则进行过滤。
3. GatewayFilter:针对每个路由具体的过滤器。
而在Spring Cloud Security中,过滤器的执行顺序如下:
1. CorsFilter:处理跨域请求。
2. CsrfFilter:处理跨站请求伪造。
3. LogoutFilter:处理退出登录请求。
4. UsernamePasswordAuthenticationFilter:处理用户名密码登录请求。
5. BasicAuthenticationFilter:处理基本认证请求。
6. RequestCacheAwareFilter:处理请求缓存。
7. SecurityContextHolderAwareRequestFilter:处理SecurityContextHolder相关操作。
8. AnonymousAuthenticationFilter:处理匿名用户的请求。
9. SessionManagementFilter:处理会话管理。
10. ExceptionTranslationFilter:处理异常情况。
11. FilterSecurityInterceptor:处理请求的访问控制。
当有登录接口请求时,Spring Cloud Gateway和Spring Cloud Security会共同进行过滤。首先,请求会经过Spring Cloud Gateway的过滤器链进行处理,然后再进入Spring Cloud Security的过滤器链。如果在Spring Cloud Gateway的过滤器链中已经进行了身份验证和权限校验,那么登录接口就不会被网关拦截。但如果在Spring Cloud Gateway的过滤器链中未进行身份验证和权限校验,登录接口请求会继续进入Spring Cloud Security的过滤器链进行处理。在Spring Cloud Security的过滤器链中,会根据配置的安全规则进行身份验证和权限校验,如果未通过验证,登录接口请求会被拦截。
阅读全文