spring security中自带的过滤器和 自定义过滤器的执行顺序
时间: 2023-06-06 19:06:08 浏览: 101
可以回答该问题。在Spring Security中,自带的过滤器会在自定义过滤器之前执行。这意味着自定义过滤器可以修改自带过滤器所产生的结果。如果某个自定义过滤器需要在自带过滤器执行之后执行,可以通过配置指定该过滤器在自带过滤器之后执行。
相关问题
spring cloud gateway 过滤器和 spring cloud security 中的过滤器 执行顺序 详细讲解 如果登录接口来了 网关会拦截吗?
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的过滤器链中,会根据配置的安全规则进行身份验证和权限校验,如果未通过验证,登录接口请求会被拦截。
spring security过滤器与servlet过滤器执行顺序
Spring Security过滤器与Servlet过滤器的执行顺序是不同的。
在Spring Security中,过滤器链是通过DelegatingFilterProxy来管理的。DelegatingFilterProxy是一个Servlet过滤器,它将请求委托给Spring上下文中的一个或多个Spring Security过滤器链进行处理。在Spring Security过滤器链中,过滤器的执行顺序是由其在配置文件中的顺序决定的。
一般而言,Spring Security的过滤器链包括了很多过滤器,如UsernamePasswordAuthenticationFilter、BasicAuthenticationFilter、LogoutFilter等。这些过滤器按照特定的顺序依次执行,从而完成身份验证、授权、注销等安全功能。
而普通的Servlet过滤器是通过web.xml文件配置并按照配置的顺序执行的。Servlet容器根据web.xml中的<filter>和<filter-mapping>标签的顺序来确定过滤器的执行顺序。
因此,Spring Security过滤器链和Servlet过滤器的执行顺序是不同的,需要根据具体情况来确定。一般而言,Spring Security的过滤器会在Servlet过滤器之前执行。
阅读全文