1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 列出spring security的所有SecurityFilterChain

列出spring security的所有SecurityFilterChain

时间:2020-09-27 15:15:36

相关推荐

列出spring security的所有SecurityFilterChain

为什么80%的码农都做不了架构师?>>>

本文讲述一下如何在运行时列出所有的SecurityFilterChain。

java

FilterChainProxy chain = (FilterChainProxy) ApplicationContextHolder.getContext().getBean("springSecurityFilterChain");List<SecurityFilterChain> filterChains = chain.getFilterChains();System.out.println(filterChains);

ApplicationContextHolder

主要是如何直接使用autowired注入,在启动的时候报错,因此在完全启动之后,从context里头取

@Componentpublic class ApplicationContextHolder implements ApplicationContextAware {private static ApplicationContext ctx;public static ApplicationContext getContext() {return ctx;}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {ctx = applicationContext;}}

springSecurityFilterChain

spring-security-config-4.1.4.RELEASE-sources.jar!/org/springframework/security/config/http/HttpSecurityBeanDefinitionParser.java

static void registerFilterChainProxyIfNecessary(ParserContext pc, Object source) {if (pc.getRegistry().containsBeanDefinition(BeanIds.FILTER_CHAIN_PROXY)) {return;}// Not already registered, so register the list of filter chains and the// FilterChainProxyBeanDefinition listFactoryBean = new RootBeanDefinition(ListFactoryBean.class);listFactoryBean.getPropertyValues().add("sourceList", new ManagedList());pc.registerBeanComponent(new BeanComponentDefinition(listFactoryBean,BeanIds.FILTER_CHAINS));BeanDefinitionBuilder fcpBldr = BeanDefinitionBuilder.rootBeanDefinition(FilterChainProxy.class);fcpBldr.getRawBeanDefinition().setSource(source);fcpBldr.addConstructorArgReference(BeanIds.FILTER_CHAINS);fcpBldr.addPropertyValue("filterChainValidator", new RootBeanDefinition(DefaultFilterChainValidator.class));BeanDefinition fcpBean = fcpBldr.getBeanDefinition();pc.registerBeanComponent(new BeanComponentDefinition(fcpBean,BeanIds.FILTER_CHAIN_PROXY));pc.getRegistry().registerAlias(BeanIds.FILTER_CHAIN_PROXY,BeanIds.SPRING_SECURITY_FILTER_CHAIN);}

最后一行,注册了别名SPRING_SECURITY_FILTER_CHAIN

doc

初识 Spring Security

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。