List of usage examples for org.apache.shiro.web.servlet AbstractShiroFilter getFilterChainResolver
public FilterChainResolver getFilterChainResolver()
From source file:com.stormpath.shiro.spring.boot.autoconfigure.StormpathShiroWebAutoConfiguration.java
License:Apache License
@Bean public ShiroPrioritizedFilterChainResolver shiroPrioritizedFilterChainResolver( @Qualifier("filterShiroFilterRegistrationBean") FilterRegistrationBean filterShiroFilterRegistrationBean, @Qualifier("stormpathFilter") FilterRegistrationBean stormpathFilter) { if (!(filterShiroFilterRegistrationBean.getFilter() instanceof AbstractShiroFilter)) { throw new ConfigurationException( "Shiro filter registration bean did not contain a AbstractShiroFitler"); }/*from w w w. j a v a 2s . c om*/ AbstractShiroFilter filter = (AbstractShiroFilter) filterShiroFilterRegistrationBean.getFilter(); FilterChainResolver originalFilterChainResolver = filter.getFilterChainResolver(); List<Filter> prioritizedFilters = new ArrayList<>(); prioritizedFilters.add(stormpathFilter.getFilter()); stormpathFilter.setEnabled(false); prioritizedFilters.add(new StormpathShiroPassiveLoginFilter()); ShiroPrioritizedFilterChainResolver prioritizedFilterChainResolver = new ShiroPrioritizedFilterChainResolver( originalFilterChainResolver, prioritizedFilters); filter.setFilterChainResolver(prioritizedFilterChainResolver); return prioritizedFilterChainResolver; }
From source file:io.github.howiefh.jeews.modules.oauth2.controller.OAuthTest.java
License:Apache License
@Test public void testFilter() { AbstractShiroFilter shiroFilter = (AbstractShiroFilter) wac.getBean("shiroFilter"); PathMatchingFilterChainResolver resolver = (PathMatchingFilterChainResolver) shiroFilter .getFilterChainResolver();// w w w . j a v a 2 s . c o m DefaultFilterChainManager fcManager = (DefaultFilterChainManager) resolver.getFilterChainManager(); NamedFilterList chain = fcManager.getChain("/users/**"); assertNotNull(chain); assertEquals(chain.size(), 2); Filter[] filters = new Filter[chain.size()]; filters = chain.toArray(filters); assertTrue(filters[1] instanceof TokenFilter); }
From source file:org.workin.security.shiro.filter.authz.ShiroAuthorizationFilterChainManager.java
License:Apache License
@Override public void reloadFilterChainDefinitions() { AbstractShiroFilter shiroFilter = null; try {/*from w ww. j a v a 2s .c o m*/ shiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean.getObject(); } catch (Exception e) { logger.error("getShiroFilter from shiroFilterFactoryBean error!", e); throw new RuntimeException("get ShiroFilter from shiroFilterFactoryBean error!"); } PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter .getFilterChainResolver(); DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver.getFilterChainManager(); synchronized (lock) { /* ??/???? */ manager.getFilterChains().clear(); shiroFilterFactoryBean.getFilterChainDefinitionMap().clear(); shiroFilterFactoryBean.setFilterChainDefinitions(this.loadFilterChainDefinitions()); // ?? Map<String, String> chains = shiroFilterFactoryBean.getFilterChainDefinitionMap(); for (Map.Entry<String, String> entry : chains.entrySet()) { String url = entry.getKey(); String chainDefinition = StringUtils.trimAll(entry.getValue()); manager.createChain(url, chainDefinition); } } }