@Override protected FilterChainResolver createInstance() { List<Filter> priorityFilters = new ArrayList<>(); String priorityFilterClassNames = servletContext.getInitParameter(PRIORITY_FILTER_CLASSES_PARAMETER); if (Strings.hasText(priorityFilterClassNames)) { for (String className : Strings.commaDelimitedListToStringArray(priorityFilterClassNames)) { Filter filter = Classes.newInstance(className); priorityFilters.add(filter); } } else { priorityFilters.addAll(getDefaultFilters()); } // init each filter for (Filter filter : priorityFilters) { String filterName = Strings.uncapitalize(filter.getClass().getSimpleName()); try { filter.init(new DefaultFilterConfig(servletContext, filterName, Collections.<String, String>emptyMap())); } catch (ServletException e) { throw new ConfigurationException("Could not configure filter: ["+ filter.getClass().getName() +"]", e); } } return new ShiroPrioritizedFilterChainResolver(delegateFilterChainResolver, priorityFilters); }
@Override protected AccountResolverFilter createInstance(ServletContext servletContext, Config config) throws Exception { AccountResolverFilter filter = new AccountResolverFilter(); filter.setOauthEndpointUri(config.getAccessTokenUrl()); List<Resolver<Account>> resolvers = getResolvers(config); filter.setResolvers(resolvers); return (AccountResolverFilter) Filters.builder().setServletContext(servletContext) .setName(Strings.uncapitalize(AccountResolverFilter.class.getSimpleName())) .setFilter(filter) .build(); //ensures init is called on the filter }
@Override protected AccountResolverFilter createInstance(ServletContext servletContext, Config config) throws Exception { AccountResolverFilter filter = new AccountResolverFilter(); filter.setOauthEndpointUri(config.getAccessTokenUrl()); List<Resolver<Account>> resolvers = getResolvers(config); filter.setResolvers(resolvers); return (AccountResolverFilter) Filters.builder().setServletContext(servletContext) .setName(Strings.uncapitalize(AccountResolverFilter.class.getSimpleName())) .setFilter(filter) .build(); //ensures init is called on the filter }