/** * Inspects a bean, and if it implements the {@link Filter} interface, automatically adds that filter * instance to the internal {@link #setFilters(java.util.Map) filters map} that will be referenced * later during filter chain construction. */ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof Filter) { log.debug("Found filter chain candidate filter '{}'", beanName); Filter filter = (Filter) bean; applyGlobalPropertiesIfNecessary(filter); getFilters().put(beanName, filter); } else { log.trace("Ignoring non-Filter bean '{}'", beanName); } return bean; }
Map<String, Filter> filters = getFilters(); if (!CollectionUtils.isEmpty(filters)) { for (Map.Entry<String, Filter> entry : filters.entrySet()) {
@Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); Map<String, Filter> filters = shiroFilterFactoryBean.getFilters();//获取filters filters.put("user", new CustomUserFilter()); // 设置 securityManager shiroFilterFactoryBean.setSecurityManager(securityManager); // 登录的 url shiroFilterFactoryBean.setLoginUrl(febsProperties.getShiro().getLoginUrl()); // 登录成功后跳转的 url shiroFilterFactoryBean.setSuccessUrl(febsProperties.getShiro().getSuccessUrl()); // 未授权 url shiroFilterFactoryBean.setUnauthorizedUrl(febsProperties.getShiro().getUnauthorizedUrl()); LinkedHashMap<String, String> filterChainDefinitionMap = new LinkedHashMap<>(); // 设置免认证 url String[] anonUrls = StringUtils.splitByWholeSeparatorPreserveAllTokens(febsProperties.getShiro().getAnonUrl(), ","); for (String url : anonUrls) { filterChainDefinitionMap.put(url, "anon"); } // 配置退出过滤器,其中具体的退出代码 Shiro已经替我们实现了 filterChainDefinitionMap.put(febsProperties.getShiro().getLogoutUrl(), "logout"); // 除上以外所有 url都必须认证通过才可以访问,未通过认证自动访问 LoginUrl filterChainDefinitionMap.put("/**", "user"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; }
/** * Inspects a bean, and if it implements the {@link Filter} interface, automatically adds that filter * instance to the internal {@link #setFilters(java.util.Map) filters map} that will be referenced * later during filter chain construction. */ public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof Filter) { log.debug("Found filter chain candidate filter '{}'", beanName); Filter filter = (Filter) bean; applyGlobalPropertiesIfNecessary(filter); getFilters().put(beanName, filter); } else { log.trace("Ignoring non-Filter bean '{}'", beanName); } return bean; }
Map<String, Filter> filtersMap = shiroFilterFactoryBean.getFilters();
Map<String, Filter> filtersMap = shiroFilterFactoryBean.getFilters(); filtersMap.put("jwt", new JWTFilter()); shiroFilterFactoryBean.setFilters(filtersMap);
/** * <p> * shiro过滤器工厂bean * </p> * * @param securityManager * @return org.apache.shiro.spring.web.ShiroFilterFactoryBean * @author daiqi * @date 2018/6/27 10:39 */ @Bean @Order(value = 0) public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager, EcBaseAuthorityCustomFilterConfig customFilterConfig, EcSysFilterConfigService filterConfigService) throws Exception { ShiroFilterFactoryBean shiroFilterFactoryBean = shiroFilterFactoryBean(); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterConfigService.loadFilterChainDefinitions()); shiroFilterFactoryBean.setSecurityManager(securityManager); shiroFilterFactoryBean.getFilters().putAll(customFilterConfig.customFilters()); return shiroFilterFactoryBean; }
Map<String, Filter> filtersMap = shiroFilterFactoryBean.getFilters(); shiroFilterFactoryBean.setFilters(filtersMap);
Map<String, Filter> filtersMap = shiroFilterFactoryBean.getFilters(); KaptchaFilter kaptchaFilter = new KaptchaFilter(); filtersMap.put("kaptchaFilter", kaptchaFilter);
Map<String, Filter> filtersMap = shiroFilterFactoryBean.getFilters();
/** * 设置过滤器 */ @Bean("shiroFilter") public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager, UserService userService) { ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean(); factoryBean.setSecurityManager(securityManager); Map<String, Filter> filterMap = factoryBean.getFilters(); filterMap.put("authcToken", createAuthFilter(userService)); filterMap.put("anyRole", createRolesFilter()); factoryBean.setFilters(filterMap); factoryBean.setFilterChainDefinitionMap(shiroFilterChainDefinition().getFilterChainMap()); return factoryBean; }
Map<String, Filter> filters = getFilters(); if (!CollectionUtils.isEmpty(filters)) { for (Map.Entry<String, Filter> entry : filters.entrySet()) {