Commit 93d896c2 by zhiwj

添加加密

parent 5326b27b
package com.gic.enterprise.jsonSeralizer;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
public abstract class AbstractJsonSerializer extends JsonSerializer<String> {
protected abstract String serializerData(String value);
@Override
public void serialize(String o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
if(o != null){
String result = this.serializerData(o);
jsonGenerator.writeString(result);
}
}
}
package com.gic.enterprise.jsonSeralizer;
import com.gic.enterprise.utils.UserDetail;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
public class JsonSerializer extends AbstractJsonSerializer {
@Override
protected String serializerData(String text){
if (StringUtils.isEmpty(text)) {
return text;
}
if (ensureRiskMode()) {
// 风险模式
return text;
} else {
// 安全模式
return encrypt(text);
}
}
private boolean ensureRiskMode() {
UserDetail userDetail = UserDetailUtils.getUserDetail();
String redisKey = "enterprise:riskMode:" + userDetail.getEnterpriseId() + ":" + userDetail.getUserId();
RedissonClient redisClient = RedisUtil.getRedisClient();
RBucket<Object> bucket = redisClient.getBucket(redisKey);
return bucket.get() != null;
}
private String encrypt(String data) {
if (StringUtils.isBlank(data)) {
return data;
}
//手机号或者会员卡号 第5-8位用*代替
int length = data.length();
if (length > 8) {
return data.substring(0, 4) + "****" + data.substring(8);
} else if (length > 4) {
return data.substring(0, 4) + "****";
} else {
return "****";
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment