Example usage for org.apache.shiro.web.filter.mgt DefaultFilterChainManager getFilterChains

List of usage examples for org.apache.shiro.web.filter.mgt DefaultFilterChainManager getFilterChains

Introduction

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

Prototype

public Map<String, NamedFilterList> getFilterChains() 

Source Link

Usage

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

License:Apache License

public synchronized void reloadPermission() {
    logger.debug("reload?????");
    try {/*from  w  w  w  .  j  a v a 2  s.  c om*/
        Map<String, String> pers = generateSection();
        DefaultFilterChainManager manager = getFilterChainManager();
        manager.getFilterChains().clear();
        addToChain(manager, pers);
    } catch (Exception e) {
        logger.error("reload??????", e);
    }
    logger.debug("reload??????");
}

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

License:Apache License

private void addToChain(DefaultFilterChainManager manager, Map<String, String> definitions) throws Exception {
    if (definitions == null || CollectionUtils.isEmpty(definitions)) {
        return;//www. j ava2s.  co  m
    }
    ///**???
    manager.getFilterChains().remove("/**");
    for (Map.Entry<String, String> entry : definitions.entrySet()) {
        String url = entry.getKey();
        String chainDefinition = entry.getValue().trim().replace(" ", "");
        manager.createChain(url, chainDefinition);
    }
}

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

License:Apache License

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