mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-06-09 09:24:03 +08:00
feat: 替换过期API
This commit is contained in:
@@ -21,7 +21,7 @@ public class ReactiveTokenAuthenticationSupplier implements ReactiveAuthenticati
|
||||
@Override
|
||||
public Mono<Authentication> get() {
|
||||
return Mono
|
||||
.deferWithContext(context -> context
|
||||
.deferContextual(context -> context
|
||||
.<ParsedToken>getOrEmpty(ParsedToken.class)
|
||||
.map(t -> tokenManager.getByToken(t.getToken()))
|
||||
.orElse(Mono.empty()));
|
||||
|
||||
@@ -69,7 +69,7 @@ public class UserTokenReactiveAuthenticationSupplier implements ReactiveAuthenti
|
||||
@Override
|
||||
public Mono<Authentication> get() {
|
||||
return Mono
|
||||
.deferWithContext(context -> context
|
||||
.deferContextual(context -> context
|
||||
.<ParsedToken>getOrEmpty(ParsedToken.class)
|
||||
.map(t -> userTokenManager
|
||||
.getByToken(t.getToken())
|
||||
|
||||
@@ -48,7 +48,7 @@ public class ReactiveUserTokenController {
|
||||
@Operation(summary = "重置当前用户的令牌")
|
||||
public Mono<Boolean> resetToken() {
|
||||
return Mono
|
||||
.<ParsedToken>deferWithContext(ctx -> Mono.justOrEmpty(ctx.getOrEmpty(ParsedToken.class)))
|
||||
.<ParsedToken>deferContextual(ctx -> Mono.justOrEmpty(ctx.getOrEmpty(ParsedToken.class)))
|
||||
.flatMap(token -> userTokenManager.signOutByToken(token.getToken()))
|
||||
.thenReturn(true);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ public class ReactiveOAuth2AccessTokenParser implements ReactiveUserTokenParser,
|
||||
@Override
|
||||
public Mono<Authentication> get() {
|
||||
return Mono
|
||||
.deferWithContext(context -> context
|
||||
.deferContextual(context -> context
|
||||
.<ParsedToken>getOrEmpty(ParsedToken.class)
|
||||
.filter(token -> "oauth2".equals(token.getType()))
|
||||
.map(t -> accessTokenManager.getAuthenticationByToken(t.getToken()))
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -95,7 +95,7 @@ public final class LocaleUtils {
|
||||
* <p>
|
||||
* <pre>
|
||||
* monoOrFlux
|
||||
* .subscriberContext(LocaleUtils.useLocale(locale))
|
||||
* .contextWrite(LocaleUtils.useLocale(locale))
|
||||
* </pre>
|
||||
*
|
||||
* @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));
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
@@ -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<String,String> 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));
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user