Skip to content

Commit 82d3b5d

Browse files
committed
优化上下文
1 parent 2e39ea1 commit 82d3b5d

File tree

3 files changed

+33
-27
lines changed

3 files changed

+33
-27
lines changed

hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/UserTokenReactiveAuthenticationSupplier.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ public Mono<Authentication> get() {
7777
.doOnNext(token -> userTokenManager.touch(token.getToken()))
7878
.flatMap(token -> get(thirdPartAuthenticationManager.get(token.getType()), token.getUserId())))
7979
.orElseGet(Mono::empty))
80-
.flatMap(auth -> ReactiveLogger.mdc("userId", auth.getUser().getId()).thenReturn(auth))
80+
.flatMap(auth -> ReactiveLogger.mdc("userId", auth.getUser().getId())
81+
.then(ReactiveLogger.mdc("username", auth.getUser().getName()))
82+
.thenReturn(auth))
8183
;
8284

8385
}

hsweb-authorization/hsweb-authorization-api/src/test/java/org/hswebframework/web/authorization/AuthenticationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public String getType() {
139139
System.out.println(ctx);
140140
}))
141141
.subscriberContext(acceptContext(ctx -> ctx.put(ContextKey.of(ParsedToken.class), parsedToken)))
142-
// .subscriberContext(ReactiveLogger.start("rid","1"))
142+
.subscriberContext(ReactiveLogger.start("rid","1"))
143143
.as(StepVerifier::create)
144144
.expectNext("admin")
145145
.verifyComplete();

hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/web/CommonErrorControllerAdvice.java

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.hswebframework.web.exception.BusinessException;
77
import org.hswebframework.web.exception.NotFoundException;
88
import org.hswebframework.web.exception.ValidationException;
9+
import org.hswebframework.web.logger.ReactiveLogger;
910
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
1011
import org.springframework.core.Ordered;
1112
import org.springframework.core.annotation.Order;
@@ -36,9 +37,9 @@ public class CommonErrorControllerAdvice {
3637

3738
@ExceptionHandler
3839
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
39-
public Mono<ResponseMessage<?>> handleException(BusinessException e) {
40-
log.error(e.getMessage(), e);
41-
return Mono.just(ResponseMessage.error(e.getCode(), e.getMessage()));
40+
public Mono<ResponseMessage<Object>> handleException(BusinessException e) {
41+
return Mono.just(ResponseMessage.error(e.getCode(), e.getMessage()))
42+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
4243
}
4344

4445
@ExceptionHandler
@@ -119,64 +120,67 @@ public Mono<ResponseMessage<?>> handleException(javax.validation.ValidationExcep
119120

120121
@ExceptionHandler
121122
@ResponseStatus(HttpStatus.GATEWAY_TIMEOUT)
122-
public Mono<ResponseMessage<?>> handleException(TimeoutException e) {
123-
log.error(e.getMessage(), e);
124-
return Mono.just(ResponseMessage.error(504, "timeout", e.getMessage()));
123+
public Mono<ResponseMessage<Object>> handleException(TimeoutException e) {
124+
return Mono.just(ResponseMessage.error(504, "timeout", e.getMessage()))
125+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
126+
125127
}
126128

127129
@ExceptionHandler
128130
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
129131
@Order
130-
public Mono<ResponseMessage<?>> handleException(RuntimeException e) {
131-
log.error(e.getMessage(), e);
132-
return Mono.just(ResponseMessage.error(e.getMessage()));
132+
public Mono<ResponseMessage<Object>> handleException(RuntimeException e) {
133+
return Mono.just(ResponseMessage.error(e.getMessage()))
134+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
135+
133136
}
134137

135138
@ExceptionHandler
136139
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
137-
public Mono<ResponseMessage<?>> handleException(NullPointerException e) {
138-
log.error(e.getMessage(), e);
139-
return Mono.just(ResponseMessage.error(e.getMessage()));
140+
public Mono<ResponseMessage<Object>> handleException(NullPointerException e) {
141+
142+
return Mono.just(ResponseMessage.error(e.getMessage()))
143+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
140144
}
141145

142146
@ExceptionHandler
143147
@ResponseStatus(HttpStatus.BAD_REQUEST)
144-
public Mono<ResponseMessage<?>> handleException(IllegalArgumentException e) {
145-
log.error(e.getMessage(), e);
146-
return Mono.just(ResponseMessage.error(400, "illegal_argument", e.getMessage()));
148+
public Mono<ResponseMessage<Object>> handleException(IllegalArgumentException e) {
149+
return Mono.just(ResponseMessage.error(400, "illegal_argument", e.getMessage()))
150+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
147151
}
148152

149153
@ExceptionHandler
150154
@ResponseStatus(HttpStatus.UNSUPPORTED_MEDIA_TYPE)
151-
public Mono<ResponseMessage<?>> handleException(MediaTypeNotSupportedStatusException e) {
152-
log.error(e.getMessage(), e);
155+
public Mono<ResponseMessage<Object>> handleException(MediaTypeNotSupportedStatusException e) {
153156
return Mono.just(ResponseMessage
154157
.error(415, "unsupported_media_type", "不支持的请求类型")
155-
.result(e.getSupportedMediaTypes()));
158+
.result(e.getSupportedMediaTypes()))
159+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
156160
}
157161

158162
@ExceptionHandler
159163
@ResponseStatus(HttpStatus.NOT_ACCEPTABLE)
160-
public Mono<ResponseMessage<?>> handleException(NotAcceptableStatusException e) {
161-
log.error(e.getMessage(), e);
164+
public Mono<ResponseMessage<Object>> handleException(NotAcceptableStatusException e) {
162165
return Mono.just(ResponseMessage
163166
.error(406, "not_acceptable_media_type", "不支持的响应类型")
164-
.result(e.getSupportedMediaTypes()));
167+
.result(e.getSupportedMediaTypes()))
168+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
165169
}
166170

167171
@ExceptionHandler
168172
@ResponseStatus(HttpStatus.NOT_ACCEPTABLE)
169-
public Mono<ResponseMessage<?>> handleException(MethodNotAllowedException e) {
170-
log.error(e.getMessage(), e);
173+
public Mono<ResponseMessage<Object>> handleException(MethodNotAllowedException e) {
171174
return Mono.just(ResponseMessage
172175
.error(405, "method_not_allowed", "不支持的请求方法:" + e.getHttpMethod())
173-
.result(e.getSupportedMethods()));
176+
.result(e.getSupportedMethods()))
177+
.doOnEach(ReactiveLogger.onNext(r -> log.error(e.getMessage(), e)));
174178
}
175179

176180
@ExceptionHandler
177181
@ResponseStatus(HttpStatus.BAD_REQUEST)
178182
public Mono<ResponseMessage<?>> handleException(ServerWebInputException e) {
179-
Throwable exception=e;
183+
Throwable exception = e;
180184
do {
181185
exception = exception.getCause();
182186
if (exception instanceof ValidationException) {

0 commit comments

Comments
 (0)