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

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

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

ShiroFilterFactoryBean.getObject介绍

[英]Lazily creates and returns a AbstractShiroFilter concrete instance via the #createInstance method.
[中]通过#createInstance方法惰性地创建并返回AbstractShiroFilter具体实例。

代码示例

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

@Bean(name = "filterShiroFilterRegistrationBean")
  @ConditionalOnMissingBean
  protected FilterRegistrationBean filterShiroFilterRegistrationBean() throws Exception {

    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
    filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE, DispatcherType.ERROR);
    filterRegistrationBean.setFilter((AbstractShiroFilter) shiroFilterFactoryBean().getObject());
    filterRegistrationBean.setOrder(1);

    return filterRegistrationBean;
  }
}

代码示例来源:origin: liolay/shiro-spring-boot-starter

@Bean
@ConditionalOnMissingBean(FilterRegistrationBean.class)
public FilterRegistrationBean filterRegistrationBean(ShiroFilterFactoryBean shiroFilterFactoryBean) throws Exception {
  FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
  filterRegistration.addInitParameter("targetFilterLifecycle", "true");
  filterRegistration.setFilter((Filter) shiroFilterFactoryBean.getObject());
  filterRegistration.setEnabled(true);
  filterRegistration.addUrlPatterns("/*");
  return filterRegistration;
}

代码示例来源: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: stackoverflow.com

@Bean(name = "shiroFilter")
public AbstractShiroFilter shiroFilter() throws Exception {
  ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
  Map<String, String> filterChainDefinitionMapping = new HashMap<>();
  filterChainDefinitionMapping.put("/api/health", "authc,roles[guest],ssl[8443]");
  filterChainDefinitionMapping.put("/login", "authc");
  filterChainDefinitionMapping.put("/logout", "logout");
  shiroFilter.setFilterChainDefinitionMap(filterChainDefinitionMapping);
  shiroFilter.setSecurityManager(securityManager());
  shiroFilter.setLoginUrl("/login");
  Map<String, Filter> filters = new HashMap<>();
  filters.put("anon", new AnonymousFilter());
  filters.put("authc", new FormAuthenticationFilter());
  LogoutFilter logoutFilter = new LogoutFilter();
  logoutFilter.setRedirectUrl("/login?logout");
  filters.put("logout", logoutFilter);
  filters.put("roles", new RolesAuthorizationFilter());
  filters.put("user", new UserFilter());
  shiroFilter.setFilters(filters);
  return (AbstractShiroFilter) shiroFilter.getObject();
}

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

try {
  shiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean
      .getObject();
} catch (Exception e) {
  throw new RuntimeException(

代码示例来源: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: chilexun/springboot-demo

@Bean
public FilterRegistrationBean<Filter> filterRegistrationBean(SecurityManager securityManager,UserService userService) throws Exception{
  FilterRegistrationBean<Filter> filterRegistration = new FilterRegistrationBean<Filter>();
  filterRegistration.setFilter((Filter)shiroFilter(securityManager, userService).getObject());
  filterRegistration.addInitParameter("targetFilterLifecycle", "true");
  filterRegistration.setAsyncSupported(true);
  filterRegistration.setEnabled(true);
  filterRegistration.setDispatcherTypes(DispatcherType.REQUEST,DispatcherType.ASYNC);
  return filterRegistration;
}

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

AbstractShiroFilter shiroFilter;
try {
  shiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean.getObject();
} catch (Exception e) {
  throw new RuntimeException(e.getMessage(), e);

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

try {
  shiroFilter = (AbstractShiroFilter) shiroFilterFactoryBean
      .getObject();
} catch (Exception e) {
  throw new RuntimeException(

代码示例来源: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: johntostring/spring-boot-shiro

@Bean(name = "shiroFilter")
@DependsOn("securityManager")
@ConditionalOnMissingBean
public FilterRegistrationBean filterRegistrationBean(SecurityManager securityManager) throws Exception {
  FilterRegistrationBean filterRegistration = new FilterRegistrationBean();
  //该值缺省为false,表示生命周期由SpringApplicationContext管理,设置为true则表示由ServletContainer管理
  filterRegistration.addInitParameter("targetFilterLifecycle", "true");
  filterRegistration.setFilter((Filter) getShiroFilterFactoryBean(securityManager).getObject());
  filterRegistration.setEnabled(true);
  filterRegistration.addUrlPatterns("/*");
  return filterRegistration;
}

代码示例来源: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: 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);
}

代码示例来源:origin: elveahuang/platform-backup

@Before
  public void setUp() throws Exception {
    mockMvc = MockMvcBuilders.webAppContextSetup(wac)
        // 集成SpringShiroFilter,实现单元测试的安全控制
        .addFilters((AbstractShiroFilter) shiroFilterFactoryBean.getObject())
        .build();

    SecurityUtils.setSecurityManager(this.securityManager);
  }
}

相关文章