From d726e62de28a92eb7d278281eb26f3251e8dc5a4 Mon Sep 17 00:00:00 2001 From: Carpenter Lee Date: Fri, 26 Oct 2018 13:51:46 +0800 Subject: [PATCH] Add BlockException parameter to UrlBlockHandler.blocked() method --- .../alibaba/csp/sentinel/adapter/servlet/CommonFilter.java | 2 +- .../csp/sentinel/adapter/servlet/CommonTotalFilter.java | 2 +- .../adapter/servlet/callback/DefaultUrlBlockHandler.java | 4 +++- .../sentinel/adapter/servlet/callback/UrlBlockHandler.java | 5 ++++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonFilter.java b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonFilter.java index a3c8d008..76b25381 100755 --- a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonFilter.java +++ b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonFilter.java @@ -77,7 +77,7 @@ public class CommonFilter implements Filter { } catch (BlockException e) { HttpServletResponse sResponse = (HttpServletResponse)response; // Return the block page, or redirect to another URL. - WebCallbackManager.getUrlBlockHandler().blocked(sRequest, sResponse); + WebCallbackManager.getUrlBlockHandler().blocked(sRequest, sResponse, e); } catch (IOException e2) { Tracer.trace(e2); throw e2; diff --git a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonTotalFilter.java b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonTotalFilter.java index 4881df46..803607d5 100755 --- a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonTotalFilter.java +++ b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/CommonTotalFilter.java @@ -62,7 +62,7 @@ public class CommonTotalFilter implements Filter { chain.doFilter(request, response); } catch (BlockException e) { HttpServletResponse sResponse = (HttpServletResponse)response; - WebCallbackManager.getUrlBlockHandler().blocked(sRequest, sResponse); + WebCallbackManager.getUrlBlockHandler().blocked(sRequest, sResponse, e); } catch (IOException e2) { Tracer.trace(e2); throw e2; diff --git a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/DefaultUrlBlockHandler.java b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/DefaultUrlBlockHandler.java index cf14749f..28050732 100755 --- a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/DefaultUrlBlockHandler.java +++ b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/DefaultUrlBlockHandler.java @@ -21,6 +21,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.csp.sentinel.adapter.servlet.util.FilterUtil; +import com.alibaba.csp.sentinel.slots.block.BlockException; /*** * The default {@link UrlBlockHandler}. @@ -30,7 +31,8 @@ import com.alibaba.csp.sentinel.adapter.servlet.util.FilterUtil; public class DefaultUrlBlockHandler implements UrlBlockHandler { @Override - public void blocked(HttpServletRequest request, HttpServletResponse response) throws IOException { + public void blocked(HttpServletRequest request, HttpServletResponse response, BlockException ex) + throws IOException { // Directly redirect to the default flow control (blocked) page or customized block page. FilterUtil.blockRequest(request, response); } diff --git a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/UrlBlockHandler.java b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/UrlBlockHandler.java index dc6d1f86..a0aec6fe 100755 --- a/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/UrlBlockHandler.java +++ b/sentinel-adapter/sentinel-web-servlet/src/main/java/com/alibaba/csp/sentinel/adapter/servlet/callback/UrlBlockHandler.java @@ -20,6 +20,8 @@ import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.alibaba.csp.sentinel.slots.block.BlockException; + /*** * The URL block handler handles requests when blocked. * @@ -32,7 +34,8 @@ public interface UrlBlockHandler { * * @param request Servlet request * @param response Servlet response + * @param ex the block exception. * @throws IOException some error occurs */ - void blocked(HttpServletRequest request, HttpServletResponse response) throws IOException; + void blocked(HttpServletRequest request, HttpServletResponse response, BlockException ex) throws IOException; }