use of com.alibaba.csp.sentinel.adapter.spring.webmvc.config.SentinelWebMvcConfig in project Sentinel by alibaba.
the class SentinelWebInterceptorTest method testPassIllegalConfig.
@Test(expected = IllegalArgumentException.class)
public void testPassIllegalConfig() {
SentinelWebMvcConfig config = new SentinelWebMvcConfig();
config.setRequestAttributeName(null);
SentinelWebInterceptor interceptor = new SentinelWebInterceptor(config);
}
use of com.alibaba.csp.sentinel.adapter.spring.webmvc.config.SentinelWebMvcConfig 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.config.SentinelWebMvcConfig 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.config.SentinelWebMvcConfig in project spring-cloud-alibaba by alibaba.
the class SentinelWebAutoConfiguration method sentinelWebMvcConfig.
@Bean
@ConditionalOnProperty(name = "spring.cloud.sentinel.filter.enabled", matchIfMissing = true)
public SentinelWebMvcConfig sentinelWebMvcConfig() {
SentinelWebMvcConfig sentinelWebMvcConfig = new SentinelWebMvcConfig();
sentinelWebMvcConfig.setHttpMethodSpecify(properties.getHttpMethodSpecify());
sentinelWebMvcConfig.setWebContextUnify(properties.getWebContextUnify());
if (blockExceptionHandlerOptional.isPresent()) {
blockExceptionHandlerOptional.ifPresent(sentinelWebMvcConfig::setBlockExceptionHandler);
} else {
if (StringUtils.hasText(properties.getBlockPage())) {
sentinelWebMvcConfig.setBlockExceptionHandler(((request, response, e) -> response.sendRedirect(properties.getBlockPage())));
} else {
sentinelWebMvcConfig.setBlockExceptionHandler(new DefaultBlockExceptionHandler());
}
}
urlCleanerOptional.ifPresent(sentinelWebMvcConfig::setUrlCleaner);
requestOriginParserOptional.ifPresent(sentinelWebMvcConfig::setOriginParser);
return sentinelWebMvcConfig;
}
use of com.alibaba.csp.sentinel.adapter.spring.webmvc.config.SentinelWebMvcConfig 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("/**");
}
Aggregations