org.apache.shiro.spring.web.ShiroFilterFactoryBean.getFilterChainDefinitionMap()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中org.apache.shiro.spring.web.ShiroFilterFactoryBean.getFilterChainDefinitionMap()方法的一些代码示例,展示了ShiroFilterFactoryBean.getFilterChainDefinitionMap()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ShiroFilterFactoryBean.getFilterChainDefinitionMap()方法的具体详情如下:
包路径:org.apache.shiro.spring.web.ShiroFilterFactoryBean
类名称:ShiroFilterFactoryBean
方法名:getFilterChainDefinitionMap

ShiroFilterFactoryBean.getFilterChainDefinitionMap介绍

[英]Returns the chainName-to-chainDefinition map of chain definitions to use for creating filter chains intercepted by the Shiro Filter. Each map entry should conform to the format defined by the FilterChainManager#createChain(String,String) JavaDoc, where the map key is the chain name (e.g. URL path expression) and the map value is the comma-delimited string chain definition.
[中]返回链定义的chainName到chainDefinition映射,用于创建Shiro筛选器截获的筛选器链。每个映射条目应符合FilterChainManager#createChain(String,String)JavaDoc定义的格式,其中映射键是链名称(例如URL路径表达式),映射值是逗号分隔的字符串链定义。

代码示例

代码示例来源:origin: apache/shiro

Map<String, String> chains = getFilterChainDefinitionMap();
if (!CollectionUtils.isEmpty(chains)) {
  for (Map.Entry<String, String> entry : chains.entrySet()) {

代码示例来源:origin: dqeasycloud/easy-cloud

/**
 * 更新过滤器链
 */
public synchronized EcBaseServiceResult updateFilterChains(Map<String, String> filterChainDefinitionMap) {
  Map<String, String> oldFilterChainDefinitionMap = EcJSONUtils.parseObject(shiroFilterFactoryBean.getFilterChainDefinitionMap(), LinkedHashMap.class);
  try {
    doUpdateFilterChains(filterChainDefinitionMap);
    logger.info("更新权限成功!!");
  } catch (Exception e) {
    // 发送异常 还原过滤器链
    doUpdateFilterChains(oldFilterChainDefinitionMap);
    throw new RuntimeException(e.getMessage(), e);
  }
  return EcBaseServiceResult.newInstanceOfSuccess();
}

代码示例来源:origin: lcw2004/one

public void updatePermission() {
  synchronized (shiroFilterFactoryBean) {
    try {
      AbstractShiroFilter shiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean.getObject();
      // 获取过滤管理器
      PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter.getFilterChainResolver();
      DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver.getFilterChainManager();
      // 清空初始权限配置
      manager.getFilterChains().clear();
      shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
      // 重新构建生成
      Map<String, String> chains = new LinkedHashMap<>();
      chains.putAll(initOtherPermission());
      chains.putAll(defaultFilterChainDefinitionMap);
      for (Map.Entry<String, String> entry : chains.entrySet()) {
        String url = entry.getKey();
        String chainDefinition = entry.getValue();
        manager.createChain(url, chainDefinition);
      }
      logger.debug("update shiro permission success...");
    } catch (Exception e) {
      logger.error(e.getMessage());
    }
  }
}

代码示例来源:origin: tomsun28/bootshiro

public void reloadFilterChain() {
      ShiroFilterFactoryBean shiroFilterFactoryBean = SpringContextHolder.getBean(ShiroFilterFactoryBean.class);
      AbstractShiroFilter abstractShiroFilter = null;
      try {
        abstractShiroFilter = (AbstractShiroFilter)shiroFilterFactoryBean.getObject();
        RestPathMatchingFilterChainResolver filterChainResolver = (RestPathMatchingFilterChainResolver)abstractShiroFilter.getFilterChainResolver();
        DefaultFilterChainManager filterChainManager = (DefaultFilterChainManager)filterChainResolver.getFilterChainManager();
        filterChainManager.getFilterChains().clear();
        shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
        shiroFilterFactoryBean.setFilterChainDefinitionMap(this.initGetFilterChain());
        shiroFilterFactoryBean.getFilterChainDefinitionMap().forEach((k,v) -> filterChainManager.createChain(k,v));
      }catch (Exception e) {
        LOGGER.error(e.getMessage(),e);
      }
  }
}

代码示例来源:origin: dqeasycloud/easy-cloud

shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
Map<String, String> chains = shiroFilterFactoryBean.getFilterChainDefinitionMap();
for (Map.Entry<String, String> entry : chains.entrySet()) {
  String url = entry.getKey();

代码示例来源:origin: dqeasycloud/easy-cloud

@Override
public synchronized Map<String, String> loadFilterChainDefinitions() {
  if (EcMapUtils.isNotEmpty(filterConfigDTOMap)) {
    return buildFilterChainDefinitions(this.filterConfigDTOMap);
  }
  Yaml yaml = new Yaml();
  Map<String, String> filterChainDefinitions = new LinkedHashMap<>();
  try {
    ShiroFilterFactoryBean shiroFilterFactoryBean = yaml.loadAs(shiroConfig.getInputStream(), ShiroFilterFactoryBean.class);
    if (shiroFilterFactoryBean != null) {
      filterChainDefinitions.putAll(shiroFilterFactoryBean.getFilterChainDefinitionMap());
      int priorityLevel = 0;
      for (String key : filterChainDefinitions.keySet()) {
        SysFilterConfigDTO filterConfigDTO = new SysFilterConfigDTO();
        filterConfigDTO.setUrlPattern(key);
        filterConfigDTO.setFilterName(filterChainDefinitions.get(key));
        filterConfigDTO.setPriorityLevel(priorityLevel++);
        filterConfigDTOMap.put(key, filterConfigDTO);
      }
    }
  } catch (IOException e) {
    e.printStackTrace();
    throw new RuntimeException(e);
  }
  return filterChainDefinitions;
}

代码示例来源:origin: xuyaohui/cloud-ida-cli

shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
shiroFilterFactoryBean
    .setFilterChainDefinitionMap(getAllRolesByPermission());
    .getFilterChainDefinitionMap();
for (Map.Entry<String, String> entry : chains.entrySet()) {
  String url = entry.getKey();

代码示例来源:origin: coder-yqj/springboot-shiro

shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
shiroFilterFactoryBean
    .setFilterChainDefinitionMap(loadFilterChainDefinitions());
    .getFilterChainDefinitionMap();
for (Map.Entry<String, String> entry : chains.entrySet()) {
  String url = entry.getKey();

代码示例来源:origin: zhangyd-c/springboot-shiro

/**
 * 重新加载权限
 */
@Override
public void updatePermission() {
  ShiroFilterFactoryBean shirFilter = SpringContextHolder.getBean(ShiroFilterFactoryBean.class);
  synchronized (shirFilter) {
    AbstractShiroFilter shiroFilter = null;
    try {
      shiroFilter = (AbstractShiroFilter) shirFilter.getObject();
    } catch (Exception e) {
      throw new RuntimeException("get ShiroFilter from shiroFilterFactoryBean error!");
    }
    PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter.getFilterChainResolver();
    DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver.getFilterChainManager();
    // 清空老的权限控制
    manager.getFilterChains().clear();
    shirFilter.getFilterChainDefinitionMap().clear();
    shirFilter.setFilterChainDefinitionMap(loadFilterChainDefinitions());
    // 重新构建生成
    Map<String, String> chains = shirFilter.getFilterChainDefinitionMap();
    for (Map.Entry<String, String> entry : chains.entrySet()) {
      String url = entry.getKey();
      String chainDefinition = entry.getValue().trim().replace(" ", "");
      manager.createChain(url, chainDefinition);
    }
  }
}

代码示例来源:origin: java-aodeng/hope-plus

/***
 * 重新加载权限
 */
@Override
public void updatePermission() {
  ShiroFilterFactoryBean shiroFilterFactoryBean= SpringContextHolder.getBean(ShiroFilterFactoryBean.class);
  synchronized (shiroFilterFactoryBean){
    AbstractShiroFilter abstractShiroFilter =null;
    try{
      abstractShiroFilter =(AbstractShiroFilter) shiroFilterFactoryBean.getObject();
    }catch (Exception e) {
      throw new RuntimeException("Get AbstractShiroFilter error");
    }
    PathMatchingFilterChainResolver pathMatchingFilterChainResolver=(PathMatchingFilterChainResolver)abstractShiroFilter.getFilterChainResolver();
    DefaultFilterChainManager defaultFilterChainManager=(DefaultFilterChainManager)pathMatchingFilterChainResolver.getFilterChainManager();
    //清空老的权限控制
    defaultFilterChainManager.getFilterChains().clear();
    shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
    shiroFilterFactoryBean.setFilterChainDefinitionMap(loadFilterChainDefinitions());
    //重新构建生成
    Map<String,String> map=shiroFilterFactoryBean.getFilterChainDefinitionMap();
    for(Map.Entry<String,String> stringEntry:map.entrySet()){
      String url=stringEntry.getKey();
      String chainDefinition=stringEntry.getValue().trim().replace(" ","");
      defaultFilterChainManager.createChain(url,chainDefinition);
    }
  }
  log.info("[hope权限重新加载成功,低调小熊猫博客:https://aodeng.cc]");
}

代码示例来源:origin: zhangyd-c/OneBlog

/**
 * 重新加载权限
 */
public void updatePermission() {
  ShiroFilterFactoryBean shirFilter = SpringContextHolder.getBean(ShiroFilterFactoryBean.class);
  synchronized (shirFilter) {
    AbstractShiroFilter shiroFilter = null;
    try {
      shiroFilter = (AbstractShiroFilter) shirFilter.getObject();
    } catch (Exception e) {
      throw new RuntimeException("get ShiroFilter from shiroFilterFactoryBean error!");
    }
    PathMatchingFilterChainResolver filterChainResolver = (PathMatchingFilterChainResolver) shiroFilter.getFilterChainResolver();
    DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver.getFilterChainManager();
    // 清空老的权限控制
    manager.getFilterChains().clear();
    shirFilter.getFilterChainDefinitionMap().clear();
    shirFilter.setFilterChainDefinitionMap(loadFilterChainDefinitions());
    // 重新构建生成
    Map<String, String> chains = shirFilter.getFilterChainDefinitionMap();
    for (Map.Entry<String, String> entry : chains.entrySet()) {
      String url = entry.getKey();
      String chainDefinition = entry.getValue().trim().replace(" ", "");
      manager.createChain(url, chainDefinition);
    }
  }
}

代码示例来源:origin: org.apache.shiro/shiro-spring

Map<String, String> chains = getFilterChainDefinitionMap();
if (!CollectionUtils.isEmpty(chains)) {
  for (Map.Entry<String, String> entry : chains.entrySet()) {

代码示例来源:origin: watchdog-framework/watchdog-framework

@Override
public void reloadPerms() {
  ShiroFilterFactoryBean shiroFilterFactoryBean = SpringUtils.getBean(ShiroFilterFactoryBean.class);
  AbstractShiroFilter abstractShiroFilter;
  try {
    abstractShiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean.getObject();
  } catch (Exception e) {
    throw new RequestException(ResponseCode.FAIL.code,"重新加载权限失败",e);
  }
  PathMatchingFilterChainResolver filterChainResolver =
      (PathMatchingFilterChainResolver) abstractShiroFilter.getFilterChainResolver();
  DefaultFilterChainManager manager = (DefaultFilterChainManager) filterChainResolver
      .getFilterChainManager();
  /*清除旧版权限*/
  manager.getFilterChains().clear();
  shiroFilterFactoryBean.getFilterChainDefinitionMap().clear();
  /*更新新数据*/
  Map<String, String> filterChainDefinitionMap = getFilterChainDefinitionMap();
  shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
  filterChainDefinitionMap.forEach(manager::createChain);
}

相关文章