Example usage for org.apache.shiro.web.filter.mgt FilterChainManager getFilters

List of usage examples for org.apache.shiro.web.filter.mgt FilterChainManager getFilters

Introduction

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

Prototype

Map<String, Filter> getFilters();

Source Link

Document

Returns the pool of available Filter s managed by this manager, keyed by name .

Usage

From source file:org.everit.osgi.authentication.shiro.simple.DefaultShiroFilter.java

License:Open Source License

public DefaultShiroFilter(final long globalSessionTimeout, final String shiroIniLocation, final Realm realm,
        final String casLoginUrl, final String casFailureUrl) {

    Ini ini = loadIni(shiroIniLocation);

    IniWebEnvironment iniWebEnvironment = new IniWebEnvironment() {

        @Override/*from w w w .  j  av  a 2  s  .c  om*/
        protected FilterChainResolver createFilterChainResolver() {
            FilterChainResolver filterChainResolver = super.createFilterChainResolver();

            if (realm instanceof CasRealm) {
                if (filterChainResolver instanceof PathMatchingFilterChainResolver) {
                    FilterChainManager filterChainManager = ((PathMatchingFilterChainResolver) filterChainResolver)
                            .getFilterChainManager();
                    Map<String, Filter> filters = filterChainManager.getFilters();
                    for (Filter filter : filters.values()) {
                        if (filter instanceof RolesAuthorizationFilter) {
                            ((RolesAuthorizationFilter) filter).setLoginUrl(casLoginUrl);
                        }
                    }
                }
            }

            return filterChainResolver;
        }

        @Override
        protected WebSecurityManager createWebSecurityManager() {
            DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
            defaultWebSessionManager.setGlobalSessionTimeout(globalSessionTimeout);

            DefaultWebSecurityManager webSecurityManager = new DefaultWebSecurityManager();
            webSecurityManager.setRealm(realm);
            webSecurityManager.setSessionManager(defaultWebSessionManager);
            if (realm instanceof CasRealm) {
                webSecurityManager.setSubjectFactory(new CasSubjectFactory());
                CasFilter casFilter = new CasFilter();
                casFilter.setFailureUrl(casFailureUrl);
                setObject("casFilter", casFilter);
            }
            return webSecurityManager;
        }

    };
    iniWebEnvironment.setIni(ini);
    iniWebEnvironment.init();

    WebSecurityManager securityManager = (WebSecurityManager) iniWebEnvironment.getSecurityManager();
    setSecurityManager(securityManager);

    FilterChainResolver filterChainResolver = iniWebEnvironment.getFilterChainResolver();
    setFilterChainResolver(filterChainResolver);
}

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 va2  s  .  c  o 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.panifex.security.shiro.SecurityFilterImplTest.java

License:Open Source License

private void expectGettingFilterWithName(Filter filter, String filterName) {
    // expect getting filterChainManager
    FilterChainManager filterChainManagerMock = createMock(FilterChainManager.class);
    expect(filterChainResolverMock.getFilterChainManager()).andReturn(filterChainManagerMock);

    // expect getting form authentication filters
    Map<String, Filter> filters = new HashMap<>();
    filters.put(DefaultFilter.authc.toString(), filter);
    expect(filterChainManagerMock.getFilters()).andReturn(filters);
}