From 7f95784e5beea3ea1e2696b32ded8c751226e94f Mon Sep 17 00:00:00 2001 From: zhouhao Date: Wed, 6 Apr 2022 21:15:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96token=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/authorization/AuthenticationTests.java | 3 ++- .../basic/web/ReactiveUserTokenController.java | 4 ++-- .../auth/ReactiveOAuth2AccessTokenParser.java | 13 ++++--------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-api/src/test/java/org/hswebframework/web/authorization/AuthenticationTests.java b/hsweb-authorization/hsweb-authorization-api/src/test/java/org/hswebframework/web/authorization/AuthenticationTests.java index 9e4df5c31..01c4c4ebf 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/test/java/org/hswebframework/web/authorization/AuthenticationTests.java +++ b/hsweb-authorization/hsweb-authorization-api/src/test/java/org/hswebframework/web/authorization/AuthenticationTests.java @@ -12,6 +12,7 @@ import org.junit.Test; import reactor.core.publisher.Mono; import reactor.core.publisher.SignalType; import reactor.test.StepVerifier; +import reactor.util.context.Context; import java.util.Collections; import java.util.Set; @@ -138,7 +139,7 @@ public class AuthenticationTests { .doOnEach(ReactiveLogger.on(SignalType.ON_NEXT,(ctx,signal)->{ System.out.println(ctx); })) - .subscriberContext(acceptContext(ctx -> ctx.put(ContextKey.of(ParsedToken.class), parsedToken))) + .subscriberContext(Context.of(ParsedToken.class, parsedToken)) .subscriberContext(ReactiveLogger.start("rid","1")) .as(StepVerifier::create) .expectNext("admin") 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 1316853c2..470401ea2 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 @@ -47,8 +47,8 @@ public class ReactiveUserTokenController { @Authorize(merge = false) @Operation(summary = "重置当前用户的令牌") public Mono resetToken() { - return ContextUtils.reactiveContext() - .map(context -> context.get(ContextKey.of(ParsedToken.class)).orElseThrow(UnAuthorizedException::new)) + return Mono + .deferWithContext(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 dedcfe752..549d291bc 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 @@ -47,16 +47,11 @@ public class ReactiveOAuth2AccessTokenParser implements ReactiveUserTokenParser, @Override public Mono get() { - return ContextUtils - .reactiveContext() - .flatMap(context -> context - .get(ContextKey.of(ParsedToken.class)) + return Mono + .deferWithContext(context -> context + .getOrEmpty(ParsedToken.class) .filter(token -> "oauth2".equals(token.getType())) .map(t -> accessTokenManager.getAuthenticationByToken(t.getToken())) - .orElse(Mono.empty())) - .flatMap(auth -> ReactiveLogger - .mdc("userId", auth.getUser().getId(), - "username", auth.getUser().getName()) - .thenReturn(auth)); + .orElse(Mono.empty())); } }