fix 修复 脱敏没有实现类导致返回数据异常问题

2.X
疯狂的狮子li 3 years ago
parent 832b9c438d
commit 1eec8f570f

@ -11,6 +11,8 @@ import com.ruoyi.common.core.annotation.Sensitive;
import com.ruoyi.common.core.enums.SensitiveStrategy;
import com.ruoyi.common.core.service.SensitiveService;
import com.ruoyi.common.core.utils.SpringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import java.io.IOException;
import java.util.Objects;
@ -20,19 +22,24 @@ import java.util.Objects;
*
* @author Yjoioooo
*/
@Slf4j
public class SensitiveJsonSerializer extends JsonSerializer<String> implements ContextualSerializer {
private SensitiveStrategy strategy;
@Override
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
SensitiveService sensitiveService = SpringUtils.getBean(SensitiveService.class);
if (ObjectUtil.isNotNull(sensitiveService) && sensitiveService.isSensitive()) {
gen.writeString(strategy.desensitizer().apply(value));
} else {
try {
SensitiveService sensitiveService = SpringUtils.getBean(SensitiveService.class);
if (ObjectUtil.isNotNull(sensitiveService) && sensitiveService.isSensitive()) {
gen.writeString(strategy.desensitizer().apply(value));
} else {
gen.writeString(value);
}
} catch (BeansException e) {
log.error("脱敏实现不存在, 采用默认处理 => {}", e.getMessage());
gen.writeString(value);
}
}
@Override

@ -0,0 +1,25 @@
package com.ruoyi.demo.service.impl;
import com.ruoyi.common.core.service.SensitiveService;
import com.ruoyi.common.satoken.utils.LoginHelper;
import org.springframework.stereotype.Service;
/**
*
*
*
*
* @author Lion Li
*/
@Service
public class SensitiveServiceImpl implements SensitiveService {
/**
*
*/
@Override
public boolean isSensitive() {
return !LoginHelper.isAdmin();
}
}
Loading…
Cancel
Save