@@ -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; | |||
@@ -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; | |||
@@ -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); | |||
} | |||
@@ -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; | |||
} |