oauth2-exception-序列化additionalInformation

This commit is contained in:
khalil
2025-04-24 12:20:00 +08:00
parent 17c38a030c
commit 96b6d2cc65

View File

@@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.util.Locale;
@@ -152,21 +153,18 @@ public class CustomOAuthExceptionJacksonSerializer extends StdSerializer<CustomO
}
String CODE = "code";
String MESSAGE = "message";
String REASON = "reason";
String DATE = "date";
jgen.writeNumberField(CODE, status.value());
Locale locale = LocaleContextHolder.getLocale();
String i18nId = BusiStatus.class.getSimpleName() + StrUtil.DOT + status.getName();
String abc = SpringContextHolder.getBean(MessageSource.class).getMessage(i18nId, null, status.getMessage(), locale);
jgen.writeStringField(MESSAGE, abc);
Map<String, String> additionalInformation = value.getAdditionalInformation();
if (CollectionUtil.isNotEmpty(additionalInformation)) {
if (additionalInformation.containsKey(REASON)) {
jgen.writeStringField(REASON, additionalInformation.get(REASON));
}
if (additionalInformation.containsKey(DATE)) {
jgen.writeStringField(DATE, additionalInformation.get(DATE));
}
if (CollectionUtils.isEmpty(additionalInformation)){
jgen.writeEndObject();
return;
}
for (String key : additionalInformation.keySet()){
jgen.writeStringField(key, additionalInformation.get(key));
}
jgen.writeEndObject();
}