use of com.alibaba.csp.sentinel.adapter.spring.webmvc.SentinelWebInterceptor in project Sentinel by alibaba.
the class InterceptorConfig method addSpringMvcInterceptor.
private void addSpringMvcInterceptor(InterceptorRegistry registry) {
SentinelWebMvcConfig config = new SentinelWebMvcConfig();
// Depending on your situation, you can choose to process the BlockException via
// the BlockExceptionHandler or throw it directly, then handle it
// in Spring web global exception handler.
// config.setBlockExceptionHandler((request, response, e) -> { throw e; });
// Use the default handler.
config.setBlockExceptionHandler(new DefaultBlockExceptionHandler());
// Custom configuration if necessary
config.setHttpMethodSpecify(true);
// By default web context is true, means that unify web context(i.e. use the default context name),
// in most scenarios that's enough, and it could reduce the memory footprint.
// If set it to false, entrance contexts will be separated by different URLs,
// which is useful to support "chain" relation flow strategy.
// We can change it and view different result in `Resource Chain` menu of dashboard.
config.setWebContextUnify(true);
config.setOriginParser(request -> request.getHeader("S-user"));
// Add sentinel interceptor
registry.addInterceptor(new SentinelWebInterceptor(config)).addPathPatterns("/**");
}
use of com.alibaba.csp.sentinel.adapter.spring.webmvc.SentinelWebInterceptor in project learn-simple by muggle0.
the class SimpleWebmvcConfig method addInterceptors.
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注冊sentinel 拦截器
SentinelWebMvcConfig config = new SentinelWebMvcConfig();
config.setHttpMethodSpecify(true);
config.setWebContextUnify(true);
config.setBlockExceptionHandler(new SimpleBlockExceptionHandler());
registry.addInterceptor(new SentinelWebInterceptor(config)).addPathPatterns("/**");
}
use of com.alibaba.csp.sentinel.adapter.spring.webmvc.SentinelWebInterceptor in project ddf-common by dongfangding.
the class SentinelAutoConfiguration method addSpringMvcInterceptor.
/**
* 接口请求后会被拦截到控制台的---簇点链路上, 可以不适用@SentinelResource注解, 区别是, 如果接口调用链上没有生命是的@SentinelResource资源,
* 那么就将最外层接口入口层(即方法的@RequestMapping)作为资源且不会往下生成资源链。而如果@RequestMapping方法调用了某个@SentinelResource资源,
* 则会在入口层往下生成资源链路
* <p>
* 格式如下
* 无资源映射
* /helloA
* <p>
* 有资源映射
* /helloB
* -- hello(如果这个方法声明了@SentinelResource的话)
*
* @param registry
*/
private void addSpringMvcInterceptor(InterceptorRegistry registry) {
SentinelWebMvcConfig config = new SentinelWebMvcConfig();
// Depending on your situation, you can choose to process the BlockException via
// the BlockExceptionHandler or throw it directly, then handle it
// in Spring web global exception handler.
// 将异常抛出去, 然后接管异常处理
config.setBlockExceptionHandler((request, response, e) -> {
throw e;
});
// Use the default handler.
// config.setBlockExceptionHandler(new DefaultBlockExceptionHandler());
// Custom configuration if necessary
config.setHttpMethodSpecify(true);
// By default web context is true, means that unify web context(i.e. use the default context name),
// in most scenarios that's enough, and it could reduce the memory footprint.
// If set it to false, entrance contexts will be separated by different URLs,
// which is useful to support "chain" relation flow strategy.
// We can change it and view different result in `Resource Chain` menu of dashboard.
config.setWebContextUnify(true);
config.setOriginParser(request -> request.getHeader("S-user"));
// Add sentinel interceptor
registry.addInterceptor(new SentinelWebInterceptor(config)).addPathPatterns("/**");
}
use of com.alibaba.csp.sentinel.adapter.spring.webmvc.SentinelWebInterceptor in project Sentinel by alibaba.
the class InterceptorConfig method addSpringMvcInterceptor.
private void addSpringMvcInterceptor(InterceptorRegistry registry) {
// Config
SentinelWebMvcConfig config = new SentinelWebMvcConfig();
config.setBlockExceptionHandler(new BlockExceptionHandler() {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {
String resourceName = e.getRule().getResource();
// Depending on your situation, you can choose to process or throw
if ("/hello".equals(resourceName)) {
// Do something ......
// Write string or json string;
response.getWriter().write("/Blocked by sentinel");
} else {
// Handle in global exception handling
throw e;
}
}
});
// Custom configuration if necessary
config.setHttpMethodSpecify(false);
config.setWebContextUnify(true);
config.setOriginParser(new RequestOriginParser() {
@Override
public String parseOrigin(HttpServletRequest request) {
return request.getHeader("S-user");
}
});
// Add sentinel interceptor
registry.addInterceptor(new SentinelWebInterceptor(config)).addPathPatterns("/**");
}
Aggregations