@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String exclusionPattern = getSelector().excludePatternInUse(request); if (exclusionPattern != null) { // Ability to override exclusion by more specific pattern if (decoratorSelector instanceof PathBasedDecoratorSelector) { PathBasedDecoratorSelector<WebAppContext> pbds = (PathBasedDecoratorSelector<WebAppContext>) decoratorSelector; String decoratorPattern = pbds.getPathMapper().getPatternInUse(WebAppContext.getRequestPath(request)); if(decoratorPattern == null) { // there is no decorator rule for this exclusion pattern filterChain.doFilter(request, response); return; } if(PathMapper.isMoreSpecific(exclusionPattern, decoratorPattern)){ // if the exclusion type is more specific filterChain.doFilter(request, response); return; } } } super.doFilter(servletRequest, servletResponse, filterChain); }
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String exclusionPattern = getSelector().excludePatternInUse(request); if (exclusionPattern != null) { // Ability to override exclusion by more specific pattern if (decoratorSelector instanceof PathBasedDecoratorSelector) { PathBasedDecoratorSelector<WebAppContext> pbds = (PathBasedDecoratorSelector<WebAppContext>) decoratorSelector; String decoratorPattern = pbds.getPathMapper().getPatternInUse(WebAppContext.getRequestPath(request)); if(decoratorPattern == null) { // there is no decorator rule for this exclusion pattern filterChain.doFilter(request, response); return; } if(PathMapper.isMoreSpecific(exclusionPattern, decoratorPattern)){ // if the exclusion type is more specific filterChain.doFilter(request, response); return; } } } super.doFilter(servletRequest, servletResponse, filterChain); }