当前位置: 首页 > news >正文

ppt哪个网站质量高在家开网店怎么开

ppt哪个网站质量高,在家开网店怎么开,兰州关键词排名公司,优化推广公司哪家好Filter顺序 Spring Security的官方文档向我们提供了filter的顺序,实际应用中无论用到了哪些,整体的顺序是保持不变的: ChannelProcessingFilter,重定向到其他协议的过滤器。也就是说如果你访问的channel错了,那首先就会在channel…

Filter顺序

Spring Security的官方文档向我们提供了filter的顺序,实际应用中无论用到了哪些,整体的顺序是保持不变的:

  1. ChannelProcessingFilter,重定向到其他协议的过滤器。也就是说如果你访问的channel错了,那首先就会在channel之间进行跳转,如http变为https。
  2. SecurityContextPersistenceFilter,请求来临时在SecurityContextHolder中建立一个SecurityContext,然后在请求结束的时候,清空SecurityContextHolder。并且任何对SecurityContext的改变都可以被copy到HttpSession。
  3. ConcurrentSessionFilter,因为它需要使用SecurityContextHolder的功能,而且更新对应session的最后更新时间,以及通过SessionRegistry获取当前的SessionInformation以检查当前的session是否已经过期,过期则会调用LogoutHandler。
  4. 认证处理机制,如UsernamePasswordAuthenticationFilter,CasAuthenticationFilter,BasicAuthenticationFilter等,以至于SecurityContextHolder可以被更新为包含一个有效的Authentication请求。
  5. SecurityContextHolderAwareRequestFilter,它将会把HttpServletRequest封装成一个继承自HttpServletRequestWrapper的SecurityContextHolderAwareRequestWrapper,同时使用SecurityContext实现了HttpServletRequest中与安全相关的方法。
  6. JaasApiIntegrationFilter,如果SecurityContextHolder中拥有的Authentication是一个JaasAuthenticationToken,那么该Filter将使用包含在JaasAuthenticationToken中的Subject继续执行FilterChain。
  7. RememberMeAuthenticationFilter,如果之前的认证处理机制没有更新SecurityContextHolder,并且用户请求包含了一个Remember-Me对应的cookie,那么一个对应的Authentication将会设给SecurityContextHolder。
  8. AnonymousAuthenticationFilter,如果之前的认证机制都没有更新SecurityContextHolder拥有的Authentication,那么一个AnonymousAuthenticationToken将会设给SecurityContextHolder
  9. ExceptionTransactionFilter,用于处理在FilterChain范围内抛出的AccessDeniedException和AuthenticationException,并把它们转换为对应的Http错误码返回或者对应的页面。
  10. FilterSecurityInterceptor,保护Web URI,进行权限认证,并且在访问被拒绝时抛出异常。

自定义过滤器

       除了这些过滤器外,我们可能还需要在认证链路中自定义一些过滤器。

       oauth2拦截器在初始化完成后,共会生成三个拦截器调用链,分别对应oauth/token等的oauth2认证拦截器调用链,对resource资源访问的拦截器调用链,springsecurity的拦截器调用链。

  1. oauth2认证拦截器调用链

       通过AuthorizationServerSecurityConfigurer的addTokenEndpointAuthenticationFilter()方法我们可以在BasicAuticaitonFilter前加入拦截器。

       这个过滤器是在ClientCredentialsTokenEndpointFilter之后的,所以,如果想在ClientCredentialsTokenEndpointFilter过滤器之前加过滤器的话, 我还没找到方法

@Configuration
public class OAuth2ServerFilterConfig extends AuthorizationServerConfigurerAdapter {@Overridepublic void configure(AuthorizationServerSecurityConfigurer configurer) throws Exception {configurer.addTokenEndpointAuthenticationFilter(oauth2JsonClientAuthFilter());}private Filter oauth2JsonClientAuthFilter() {Oauth2JsonClientAuthFilter oauth2JsonClientAuthFilter = new Oauth2JsonClientAuthFilter();oauth2JsonClientAuthFilter.setAuthenticationSuccessHandler(new AuthenticationSuccessHandler() {@Overridepublic void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,Authentication authentication) throws IOException, ServletException {}});return oauth2JsonClientAuthFilter;}
}  

2. resource资源拦截器调用链

@Configuration
public class AuthResourceServerConfigurer extends ResourceServerConfigurerAdapter {@Overridepublic void configure(ResourceServerSecurityConfigurer resources) throws Exception {super.configure(resources);}@Overridepublic void configure(HttpSecurity http) throws Exception {http.authorizeRequests().anyRequest().authenticated();//这个是对所有url都进行拦截,因为没设置发现只有对部分url生效http.requestMatcher(AnyRequestMatcher.INSTANCE);}
}

3.springsecurity认证拦截器

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {@Beanpublic BCryptPasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}@Overridepublic void configure(HttpSecurity http) throws Exception {//其余代码省略http.addFilterBefore(mutiLoginDemoFilter(httpSecurity), BasicAuticaitonFilter.class);}
}

这里springsecurity的加入的过滤器都比addTokenEndpointAuthenticationFilter加入的过滤器执行晚,通过代码就可以看出:

public final class HttpSecurity extendsAbstractConfiguredSecurityBuilder<DefaultSecurityFilterChain, HttpSecurity>implements SecurityBuilder<DefaultSecurityFilterChain>,HttpSecurityBuilder<HttpSecurity> {@Overrideprotected DefaultSecurityFilterChain performBuild() {//这里获取所有的拦截器,filters.sort(comparator) 将所有的过滤器排序后返回filters.sort(comparator);return new DefaultSecurityFilterChain(requestMatcher, filters);}}public HttpSecurity addFilterBefore(Filter filter,Class<? extends Filter> beforeFilter) {comparator.registerBefore(filter.getClass(), beforeFilter);return addFilter(filter);}

http://www.yayakq.cn/news/942800/

相关文章:

  • 单纯做网站的公司网络结构图怎么画
  • 常州做企业网站的公司移动网站怎么登录
  • 网站的栏目和板块设计重庆整合营销网站建设
  • 电子商务网站建设投资预算网站多快能收录seo
  • 网站的站点地图设计网站建设公司宣传语
  • 织梦网站修改教程视频教程啊里网站制作
  • 网站页面设计公司推荐广西城乡和建设厅网站首页
  • 想学网站建设与设计的书籍昆明网页设计培训机构
  • 网站的类型和特色河南 网站开发
  • 宿迁市住房城乡建设局网站网页打不开但是qq能上是怎么回事
  • 让搜索引擎收录网站广州企业网站公司
  • 四川住房城乡和城乡建设厅网站网站开发技能
  • 个人电脑做外网网站深圳画册设计专业公司
  • 店铺只做商品展示网站怎么做免费设计装修效果图
  • 什么网站做生鲜比较好一款app的开发成本
  • 宁波三盛网络网站建设购物类网站开发
  • 网站购买云空间网站交易平台建设
  • 洛阳网站推广优化自己做的表白网站
  • win7 iis建立网站一键生成表白网页
  • 国内html5视频网站建设辽宁建设网站首页
  • 网站的tdk指的是什么内蒙古建设厅公示网站
  • 厦门市建设工程安全质量协会网站深圳外贸公司电话
  • 中国建设银行货币基金网站网站建设中的主要功能
  • 网站导航规划九江网站开发公司
  • 自助式建站平台热烈祝贺网站上线
  • 大连网站程序开发搜索引擎seo关键词优化效果
  • 网站的服务器打不开电商运营30岁后没人请了
  • 公司企业做网站怎么做网络营销策划技巧
  • 1高端网站建设响应式网站素材
  • 高端广告公司网站建设价格多个端口网站如何做域名重定向