From c5fd2faad73abde1e26144810e9a3c593d7f99ff Mon Sep 17 00:00:00 2001 From: zhouhao Date: Wed, 28 Jun 2023 15:50:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=BF=E6=8D=A2=E8=BF=87=E6=9C=9FAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../token/ReactiveTokenAuthenticationSupplier.java | 2 +- .../token/UserTokenReactiveAuthenticationSupplier.java | 2 +- .../basic/web/ReactiveUserTokenController.java | 2 +- .../server/auth/ReactiveOAuth2AccessTokenParser.java | 2 +- .../hswebframework/web/exception/TraceSourceException.java | 7 ++++--- .../main/java/org/hswebframework/web/i18n/LocaleUtils.java | 4 ++-- .../java/org/hswebframework/web/logger/ReactiveLogger.java | 2 +- .../org/hswebframework/web/logging/AccessLoggerInfo.java | 5 +++-- .../web/starter/initialize/DefaultDependencyUpgrader.java | 2 +- 9 files changed, 15 insertions(+), 13 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/ReactiveTokenAuthenticationSupplier.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/ReactiveTokenAuthenticationSupplier.java index 6b43c1da5..2e1c205db 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/ReactiveTokenAuthenticationSupplier.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/ReactiveTokenAuthenticationSupplier.java @@ -21,7 +21,7 @@ public class ReactiveTokenAuthenticationSupplier implements ReactiveAuthenticati @Override public Mono get() { return Mono - .deferWithContext(context -> context + .deferContextual(context -> context .getOrEmpty(ParsedToken.class) .map(t -> tokenManager.getByToken(t.getToken())) .orElse(Mono.empty())); diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserTokenReactiveAuthenticationSupplier.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserTokenReactiveAuthenticationSupplier.java index c796c13fd..e8fc342da 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserTokenReactiveAuthenticationSupplier.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserTokenReactiveAuthenticationSupplier.java @@ -69,7 +69,7 @@ public class UserTokenReactiveAuthenticationSupplier implements ReactiveAuthenti @Override public Mono get() { return Mono - .deferWithContext(context -> context + .deferContextual(context -> context .getOrEmpty(ParsedToken.class) .map(t -> userTokenManager .getByToken(t.getToken()) diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/ReactiveUserTokenController.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/ReactiveUserTokenController.java index 470401ea2..916f9c46e 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/ReactiveUserTokenController.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/ReactiveUserTokenController.java @@ -48,7 +48,7 @@ public class ReactiveUserTokenController { @Operation(summary = "重置当前用户的令牌") public Mono resetToken() { return Mono - .deferWithContext(ctx -> Mono.justOrEmpty(ctx.getOrEmpty(ParsedToken.class))) + .deferContextual(ctx -> Mono.justOrEmpty(ctx.getOrEmpty(ParsedToken.class))) .flatMap(token -> userTokenManager.signOutByToken(token.getToken())) .thenReturn(true); } diff --git a/hsweb-authorization/hsweb-authorization-oauth2/src/main/java/org/hswebframework/web/oauth2/server/auth/ReactiveOAuth2AccessTokenParser.java b/hsweb-authorization/hsweb-authorization-oauth2/src/main/java/org/hswebframework/web/oauth2/server/auth/ReactiveOAuth2AccessTokenParser.java index 549d291bc..152d0b525 100644 --- a/hsweb-authorization/hsweb-authorization-oauth2/src/main/java/org/hswebframework/web/oauth2/server/auth/ReactiveOAuth2AccessTokenParser.java +++ b/hsweb-authorization/hsweb-authorization-oauth2/src/main/java/org/hswebframework/web/oauth2/server/auth/ReactiveOAuth2AccessTokenParser.java @@ -48,7 +48,7 @@ public class ReactiveOAuth2AccessTokenParser implements ReactiveUserTokenParser, @Override public Mono get() { return Mono - .deferWithContext(context -> context + .deferContextual(context -> context .getOrEmpty(ParsedToken.class) .filter(token -> "oauth2".equals(token.getType())) .map(t -> accessTokenManager.getAuthenticationByToken(t.getToken())) diff --git a/hsweb-core/src/main/java/org/hswebframework/web/exception/TraceSourceException.java b/hsweb-core/src/main/java/org/hswebframework/web/exception/TraceSourceException.java index 30ab58049..91bf44ab1 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/exception/TraceSourceException.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/exception/TraceSourceException.java @@ -4,6 +4,7 @@ import org.hswebframework.web.i18n.LocaleUtils; import org.springframework.util.StringUtils; import reactor.core.publisher.Mono; import reactor.util.context.Context; +import reactor.util.context.ContextView; import javax.annotation.Nullable; import java.util.Locale; @@ -71,8 +72,8 @@ public class TraceSourceException extends RuntimeException { * 深度溯源上下文,用来标识是否是深度溯源的异常.开启深度追踪后,会创建新的{@link TraceSourceException}对象. * * @return 上下文 - * @see reactor.core.publisher.Flux#subscriberContext(Context) - * @see Mono#subscriberContext(Context) + * @see reactor.core.publisher.Flux#contextWrite(ContextView) + * @see Mono#contextWrite(ContextView) */ public static Context deepTraceContext() { return deepTraceContext; @@ -115,7 +116,7 @@ public class TraceSourceException extends RuntimeException { return err -> { if (err instanceof TraceSourceException) { return Mono - .deferWithContext(ctx -> { + .deferContextual(ctx -> { if (ctx.hasKey(deepTraceKey)) { return Mono.error(new TraceSourceException(err).withSource(operation,source)); } else { diff --git a/hsweb-core/src/main/java/org/hswebframework/web/i18n/LocaleUtils.java b/hsweb-core/src/main/java/org/hswebframework/web/i18n/LocaleUtils.java index 4bfb38a45..e41cd5928 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/i18n/LocaleUtils.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/i18n/LocaleUtils.java @@ -95,7 +95,7 @@ public final class LocaleUtils { *

*

      * monoOrFlux
-     * .subscriberContext(LocaleUtils.useLocale(locale))
+     * .contextWrite(LocaleUtils.useLocale(locale))
      * 
* * @param locale 区域 @@ -391,7 +391,7 @@ public final class LocaleUtils { if (signal.getType() != type) { return; } - Locale locale = signal.getContext().getOrDefault(Locale.class, DEFAULT_LOCALE); + Locale locale = signal.getContextView().getOrDefault(Locale.class, DEFAULT_LOCALE); doWith(locale, l -> operation.accept(signal, l)); }; diff --git a/hsweb-core/src/main/java/org/hswebframework/web/logger/ReactiveLogger.java b/hsweb-core/src/main/java/org/hswebframework/web/logger/ReactiveLogger.java index 4e2d4215d..17cda62ab 100644 --- a/hsweb-core/src/main/java/org/hswebframework/web/logger/ReactiveLogger.java +++ b/hsweb-core/src/main/java/org/hswebframework/web/logger/ReactiveLogger.java @@ -95,7 +95,7 @@ public class ReactiveLogger { consumer.accept(maybeContextMap.get()); } else { consumer.accept(Collections.emptyMap()); - log.warn("logger context is empty,please call publisher.subscriberContext(ReactiveLogger.mdc()) first!"); + log.warn("logger context is empty,please call publisher.contextWrite(ReactiveLogger.mdc()) first!"); } return Mono.empty(); }); diff --git a/hsweb-logging/hsweb-access-logging-api/src/main/java/org/hswebframework/web/logging/AccessLoggerInfo.java b/hsweb-logging/hsweb-access-logging-api/src/main/java/org/hswebframework/web/logging/AccessLoggerInfo.java index 153aa4105..dcb2b7975 100644 --- a/hsweb-logging/hsweb-access-logging-api/src/main/java/org/hswebframework/web/logging/AccessLoggerInfo.java +++ b/hsweb-logging/hsweb-access-logging-api/src/main/java/org/hswebframework/web/logging/AccessLoggerInfo.java @@ -11,6 +11,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.StringJoiner; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; /** @@ -160,14 +161,14 @@ public class AccessLoggerInfo { public void putContext(Map context) { if (this.context == null) { - this.context = new HashMap<>(); + this.context = new ConcurrentHashMap<>(); } this.context.putAll(context); } public void putContext(String key, Object value) { if (this.context == null) { - this.context = new HashMap<>(); + this.context = new ConcurrentHashMap<>(); } this.context.put(key, String.valueOf(value)); } diff --git a/hsweb-starter/src/main/java/org/hswebframework/web/starter/initialize/DefaultDependencyUpgrader.java b/hsweb-starter/src/main/java/org/hswebframework/web/starter/initialize/DefaultDependencyUpgrader.java index 501677caf..2854ed6b1 100644 --- a/hsweb-starter/src/main/java/org/hswebframework/web/starter/initialize/DefaultDependencyUpgrader.java +++ b/hsweb-starter/src/main/java/org/hswebframework/web/starter/initialize/DefaultDependencyUpgrader.java @@ -58,7 +58,7 @@ public class DefaultDependencyUpgrader implements DependencyUpgrader { public void upgrade(CallBack callBack) { shouldUpdateVersionList.forEach(context -> { if (this.context != null) { - context.putAll(context); + context.putAll(this.context); } if (logger.isInfoEnabled()) { logger.info("upgrade [{}/{}] to version:{} {}", dependency.getGroupId(), dependency.getArtifactId(), context.get("version"), dependency.getWebsite());