public static Map<String, Filter> createInstanceMap(FilterConfig config) { Map<String, Filter> filters = new LinkedHashMap<String, Filter>(values().length); for (DefaultFilter defaultFilter : values()) { Filter filter = defaultFilter.newInstance(); if (config != null) { try { filter.init(config); } catch (ServletException e) { String msg = "Unable to correctly init default filter instance of type " + filter.getClass().getName(); throw new IllegalStateException(msg, e); } } filters.put(defaultFilter.name(), filter); } return filters; } }
protected void addDefaultFilters(boolean init) { for (DefaultFilter defaultFilter : DefaultFilter.values()) { addFilter(defaultFilter.name(), defaultFilter.newInstance(), init, false); } } }
@Bean public ShiroFilterChainDefinition shiroFilterChainDefinition() { DefaultShiroFilterChainDefinition filterChainDefinition = new DefaultShiroFilterChainDefinition(); filterChainDefinition.addPathDefinition("/assets/**", DefaultFilter.anon.name()); // static web resources filterChainDefinition.addPathDefinition("/", DefaultFilter.anon.name()); // the welcome page allows guest or logged in users filterChainDefinition.addPathDefinition("/account-info", DefaultFilter.authc.name()); // the account-info page requires a user return filterChainDefinition; } }
@Bean @ConditionalOnMissingBean public ShiroFilterChainDefinition shiroFilterChainDefinition() { DefaultShiroFilterChainDefinition filterChainDefinition = new DefaultShiroFilterChainDefinition(); filterChainDefinition.addPathDefinition("/assets/**", DefaultFilter.anon.name()); filterChainDefinition.addPathDefinition("/**", DefaultFilter.authc.name()); return filterChainDefinition; }
/** * Adds a default filter chain path <code>/** = authc</code> if one is not found in the Ini file, otherwise * returns the <code>ini</code> object untouched. * * @param ini The configuration Ini object to be updated * @return an updated configuration Ini. */ private Ini addDefaultsToIni(Ini ini) { // protect the world if the URL section is missing Ini.Section urls = ini.getSection(IniFilterChainResolverFactory.URLS); Ini.Section filters = ini.getSection(IniFilterChainResolverFactory.FILTERS); // deprecated behavior if (CollectionUtils.isEmpty(urls) && CollectionUtils.isEmpty(filters)) { ini.setSectionProperty(IniFilterChainResolverFactory.URLS, "/**", DefaultFilter.authc.name()); } return ini; }