Update resource classification in SentinelWebFluxFilter and improve reactor EntryConfig

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
Eric Zhao 2019-11-11 19:31:48 +08:00
parent 9c268bd89a
commit 275041403d
2 changed files with 9 additions and 2 deletions

View File

@ -47,6 +47,10 @@ public class EntryConfig {
this(resourceName, entryType, 1, new Object[0], contextConfig); this(resourceName, entryType, 1, new Object[0], contextConfig);
} }
public EntryConfig(String resourceName, int resourceType, EntryType entryType, ContextConfig contextConfig) {
this(resourceName, resourceType, entryType, 1, new Object[0], contextConfig);
}
public EntryConfig(String resourceName, EntryType entryType, int acquireCount, Object[] args) { public EntryConfig(String resourceName, EntryType entryType, int acquireCount, Object[] args) {
this(resourceName, entryType, acquireCount, args, null); this(resourceName, entryType, acquireCount, args, null);
} }

View File

@ -18,6 +18,7 @@ package com.alibaba.csp.sentinel.adapter.spring.webflux;
import java.util.Optional; import java.util.Optional;
import com.alibaba.csp.sentinel.EntryType; import com.alibaba.csp.sentinel.EntryType;
import com.alibaba.csp.sentinel.ResourceTypeConstants;
import com.alibaba.csp.sentinel.adapter.reactor.ContextConfig; import com.alibaba.csp.sentinel.adapter.reactor.ContextConfig;
import com.alibaba.csp.sentinel.adapter.reactor.EntryConfig; import com.alibaba.csp.sentinel.adapter.reactor.EntryConfig;
import com.alibaba.csp.sentinel.adapter.reactor.SentinelReactorTransformer; import com.alibaba.csp.sentinel.adapter.reactor.SentinelReactorTransformer;
@ -45,7 +46,8 @@ public class SentinelWebFluxFilter implements WebFilter {
if (StringUtil.isEmpty(finalPath)) { if (StringUtil.isEmpty(finalPath)) {
return chain.filter(exchange); return chain.filter(exchange);
} }
return chain.filter(exchange).transform(buildSentinelTransformer(exchange, finalPath)); return chain.filter(exchange)
.transform(buildSentinelTransformer(exchange, finalPath));
} }
private SentinelReactorTransformer<Void> buildSentinelTransformer(ServerWebExchange exchange, String finalPath) { private SentinelReactorTransformer<Void> buildSentinelTransformer(ServerWebExchange exchange, String finalPath) {
@ -53,7 +55,8 @@ public class SentinelWebFluxFilter implements WebFilter {
.map(f -> f.apply(exchange)) .map(f -> f.apply(exchange))
.orElse(EMPTY_ORIGIN); .orElse(EMPTY_ORIGIN);
return new SentinelReactorTransformer<>(new EntryConfig(finalPath, EntryType.IN, new ContextConfig(finalPath, origin))); return new SentinelReactorTransformer<>(new EntryConfig(finalPath, ResourceTypeConstants.COMMON_WEB,
EntryType.IN, new ContextConfig(finalPath, origin)));
} }
private static final String EMPTY_ORIGIN = ""; private static final String EMPTY_ORIGIN = "";