public static RequestFilter newInstance(SecurityRequestFilter... filters) { return newInstance(Arrays.asList(filters)); }
public static RequestFilter newInstance(List<? extends SecurityRequestFilter> filters) { return new SecurityRequestFilterChain(filters); }
@Override public void filter(HttpRequest request, ResponseHandler responseHandler) { DiscFilterRequest discFilterRequest = new JdiscFilterRequest(request); filter(discFilterRequest, responseHandler); }
/** * Returns the servlet request to be used in any servlets invoked after this. */ @Override public HttpServletRequest invokeRequestFilterChain(RequestFilter requestFilterChain, URI uri, HttpServletRequest httpRequest, ResponseHandler responseHandler) { SecurityRequestFilterChain securityChain = cast(SecurityRequestFilterChain.class, requestFilterChain). orElseThrow(SecurityFilterInvoker::newUnsupportedOperationException); ServletRequest wrappedRequest = new ServletRequest(httpRequest, uri); securityChain.filter(new ServletFilterRequest(wrappedRequest), responseHandler); return wrappedRequest; }
@SuppressWarnings("unchecked") private static Object createSecurityChain(List<?> filters) { Object head = filters.get(0); if (head instanceof SecurityRequestFilter) return SecurityRequestFilterChain.newInstance((List<SecurityRequestFilter>) filters); else if (head instanceof SecurityResponseFilter) return SecurityResponseFilterChain.newInstance((List<SecurityResponseFilter>) filters); throw new IllegalArgumentException("Unexpected class " + head.getClass()); }
private void configureLegacyFilters(ComponentId id, ComponentRegistry<SecurityRequestFilter> legacyRequestFilters) { ComponentId serverName = id.getNamespace(); if (SEARCH_SERVER_COMPONENT_ID.equals(serverName) && !legacyRequestFilters.allComponents().isEmpty()) { requestFilters.bind("http://*/*", SecurityRequestFilterChain.newInstance(legacyRequestFilters.allComponents())); } }