Example usage for org.apache.shiro.web.servlet AbstractShiroFilter getFilterChainResolver

List of usage examples for org.apache.shiro.web.servlet AbstractShiroFilter getFilterChainResolver

Introduction

In this page you can find the example usage for org.apache.shiro.web.servlet AbstractShiroFilter getFilterChainResolver.

Prototype

public FilterChainResolver getFilterChainResolver() 

Source Link

Usage

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);
        }
    }
}