Example usage for org.apache.shiro.web.filter.mgt PathMatchingFilterChainResolver getFilterChainManager

List of usage examples for org.apache.shiro.web.filter.mgt PathMatchingFilterChainResolver getFilterChainManager

Introduction

In this page you can find the example usage for org.apache.shiro.web.filter.mgt PathMatchingFilterChainResolver getFilterChainManager.

Prototype

public FilterChainManager getFilterChainManager() 

Source Link

Usage

From source file:com.jfaker.framework.security.shiro.ShiroIniWebEnvironment.java

License:Apache License

public void init() {
    super.init();
    FilterChainResolver resolver = getFilterChainResolver();
    if (resolver != null && resolver instanceof PathMatchingFilterChainResolver) {
        PathMatchingFilterChainResolver pathResolver = (PathMatchingFilterChainResolver) resolver;
        ShiroPlugin.setFilterChainManager(pathResolver.getFilterChainManager());
    }/*  w w  w. j av a  2s . co  m*/
}

From source file:com.webarch.common.shiro.dynamic.DynamicPermissionServiceImpl.java

License:Apache License

private DefaultFilterChainManager getFilterChainManager() throws Exception {
    // ??/*from w  ww  .  ja va 2s  .  co  m*/
    PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter
            .getFilterChainResolver();
    DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver.getFilterChainManager();
    return manager;
}

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();/*ww  w.  j  a va 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.panifex.security.shiro.SecurityFilterImpl.java

License:Open Source License

/**
 * Returns a {@link Filter} registered to {@link FilterChainManager} with the
 * specified name. The default filter instances are typically named  of the
 * {@link DefaultFilter} enum constant.//www .j  a  v  a  2s. co m
 *
 * @param filterName the filter's name
 * @return the {@link Filter} registered with the specified name
 */
protected Filter getFilter(String filterName) {
    PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) getFilterChainResolver();

    if (filterChainResolver != null) {
        FilterChainManager filterChainManager = filterChainResolver.getFilterChainManager();

        Map<String, Filter> filters = filterChainManager.getFilters();

        return filters.get(filterName);
    }
    return null;
}

From source file:org.sonatype.security.web.guice.SecurityWebModuleTest.java

License:Open Source License

@Test
public void testInjectionIsSetupCorrectly() {
    SecuritySystem securitySystem = injector.getInstance(SecuritySystem.class);

    SecurityManager securityManager = injector.getInstance(SecurityManager.class);

    RealmSecurityManager realmSecurityManager = (RealmSecurityManager) injector
            .getInstance(WebSecurityManager.class);

    assertThat(securitySystem.getSecurityManager(), sameInstance(securityManager));
    assertThat(securitySystem.getSecurityManager(), sameInstance(realmSecurityManager));

    assertThat(securityManager, instanceOf(DefaultWebSecurityManager.class));
    DefaultSecurityManager defaultSecurityManager = (DefaultSecurityManager) securityManager;

    assertThat(defaultSecurityManager.getSessionManager(), instanceOf(DefaultWebSessionManager.class));
    DefaultSessionManager sessionManager = (DefaultSessionManager) defaultSecurityManager.getSessionManager();
    assertThat(sessionManager.getSessionDAO(), instanceOf(EnterpriseCacheSessionDAO.class));

    SecurityWebFilter shiroFilter = injector.getInstance(SecurityWebFilter.class);
    assertThat(shiroFilter.getFilterChainResolver(), instanceOf(PathMatchingFilterChainResolver.class));

    PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter
            .getFilterChainResolver();//  w ww .j a  va  2s  .  c  o  m
    assertThat(filterChainResolver.getFilterChainManager(), instanceOf(DefaultFilterChainManager.class));
    assertThat(filterChainResolver, sameInstance(injector.getInstance(FilterChainResolver.class)));

    // now add a protected path
    ProtectedPathManager protectedPathManager = injector.getInstance(ProtectedPathManager.class);
    protectedPathManager.addProtectedResource("/service/**", "foobar,perms[sample:priv-name]");

    NamedFilterList filterList = filterChainResolver.getFilterChainManager().getChain("/service/**");
    assertThat(filterList.get(0), instanceOf(SimpleAccessControlFilter.class));
    assertThat(filterList.get(1), instanceOf(HttpMethodPermissionFilter.class));
}

From source file:org.workin.security.shiro.filter.authz.ShiroAuthorizationFilterChainManager.java

License:Apache License

@Override
public void reloadFilterChainDefinitions() {
    AbstractShiroFilter shiroFilter = null;
    try {//from  w w  w . j a  va  2s . co 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);
        }
    }
}