Merge remote-tracking branch 'origin/dev' into futuer/boot4

This commit is contained in:
疯狂的狮子Li
2026-03-12 14:20:36 +08:00
42 changed files with 1074 additions and 125 deletions

View File

@@ -23,9 +23,24 @@ import java.util.Objects;
@Slf4j
public class SensitiveHandler extends ValueSerializer<String> {
private SensitiveStrategy strategy;
private String[] roleKey;
private String[] perms;
private final SensitiveStrategy strategy;
private final String[] roleKey;
private final String[] perms;
/**
* 提供给 jackson 创建上下文序列化器时使用 不然会报错
*/
public SensitiveHandler() {
this.strategy = null;
this.roleKey = null;
this.perms = null;
}
public SensitiveHandler(SensitiveStrategy strategy, String[] strings, String[] perms) {
this.strategy = strategy;
this.roleKey = strings;
this.perms = perms;
}
@Override
public void serialize(String value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException {
@@ -46,10 +61,7 @@ public class SensitiveHandler extends ValueSerializer<String> {
public ValueSerializer<?> createContextual(SerializationContext ctxt, BeanProperty property) {
Sensitive annotation = property.getAnnotation(Sensitive.class);
if (Objects.nonNull(annotation) && Objects.equals(String.class, property.getType().getRawClass())) {
this.strategy = annotation.strategy();
this.roleKey = annotation.roleKey();
this.perms = annotation.perms();
return this;
return new SensitiveHandler(annotation.strategy(), annotation.roleKey(), annotation.perms());
}
return super.createContextual(ctxt, property);
}