MD5 sign timestamp validation and remove log4j2 kafka
This commit is contained in:
@@ -76,17 +76,24 @@ public class SystemConfig {
|
||||
|
||||
private boolean aggregateTestAuth = false;
|
||||
|
||||
@Value("${fizz.md5sign-timestamp-timeliness:300}")
|
||||
private int fizzMD5signTimestampTimeliness = 300; // unit: sec
|
||||
|
||||
public int fizzMD5signTimestampTimeliness() {
|
||||
return fizzMD5signTimestampTimeliness;
|
||||
}
|
||||
|
||||
@Value("${route-timeout:0}")
|
||||
private long routeTimeout = 0;
|
||||
|
||||
@Value("${fizz-trace-id.header:X-Trace-Id}")
|
||||
private String fizzTraceIdHeader;
|
||||
private String fizzTraceIdHeader;
|
||||
|
||||
@Value("${fizz-trace-id.value-strategy:requestId}")
|
||||
private String fizzTraceIdValueStrategy;
|
||||
private String fizzTraceIdValueStrategy;
|
||||
|
||||
@Value("${fizz-trace-id.value-prefix:fizz}")
|
||||
private String fizzTraceIdValuePrefix;
|
||||
private String fizzTraceIdValuePrefix;
|
||||
|
||||
@Value("${fizz.error.response.http-status.enable:true}")
|
||||
public void setFizzErrRespHttpStatusEnable(boolean fizzErrRespHttpStatusEnable) {
|
||||
|
||||
@@ -40,6 +40,7 @@ import we.util.*;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Supplier;
|
||||
@@ -515,22 +516,29 @@ public class ApiConfigService implements ApplicationListener<ContextRefreshedEve
|
||||
if (StringUtils.isAnyBlank(timestamp, sign)) {
|
||||
r.code = Result.FAIL;
|
||||
r.msg = a.app + " not present timestamp " + timestamp + " or sign " + sign;
|
||||
} else if (validate(a.app, timestamp, a.secretkey, sign)) {
|
||||
} else {
|
||||
r.code = Result.FAIL;
|
||||
r.msg = a.app + " sign " + sign + " invalid";
|
||||
long ts = Long.parseLong(timestamp);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
long timeliness = systemConfig.fizzMD5signTimestampTimeliness();
|
||||
long start = DateTimeUtils.toMillis(now.minusSeconds(timeliness));
|
||||
long end = DateTimeUtils.toMillis(now.plusSeconds(timeliness));
|
||||
if (start <= ts && ts <= end) {
|
||||
StringBuilder b = ThreadContext.getStringBuilder();
|
||||
b.append(a.app) .append(Consts.S.UNDER_LINE)
|
||||
.append(timestamp).append(Consts.S.UNDER_LINE)
|
||||
.append(a.secretkey);
|
||||
if (!sign.equalsIgnoreCase(DigestUtils.md532(b.toString()))) {
|
||||
r.code = Result.FAIL;
|
||||
r.msg = a.app + " sign " + sign + " invalid";
|
||||
}
|
||||
} else {
|
||||
r.code = Result.FAIL;
|
||||
r.msg = a.app + " timestamp " + timestamp + " invalid";
|
||||
}
|
||||
}
|
||||
return Mono.just(r);
|
||||
}
|
||||
|
||||
private boolean validate(String app, String timestamp, String secretKey, String sign) {
|
||||
StringBuilder b = ThreadContext.getStringBuilder();
|
||||
b.append(app) .append(Consts.S.UNDER_LINE)
|
||||
.append(timestamp).append(Consts.S.UNDER_LINE)
|
||||
.append(secretKey);
|
||||
return sign.equalsIgnoreCase(DigestUtils.md532(b.toString()));
|
||||
}
|
||||
|
||||
private Mono<Result<ApiConfig>> authSecretKey(App a, String sign, Result<ApiConfig> r) {
|
||||
if (StringUtils.isBlank(sign)) {
|
||||
r.code = Result.FAIL;
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"logTime": {
|
||||
"$resolver": "timestamp",
|
||||
"epoch": {
|
||||
"unit": "millis",
|
||||
"rounded": true
|
||||
}
|
||||
},
|
||||
"logLevel": {
|
||||
"$resolver": "level",
|
||||
"field": "name"
|
||||
},
|
||||
"logMsg": {
|
||||
"$resolver": "message",
|
||||
"stringified": true
|
||||
},
|
||||
"thread": {
|
||||
"$resolver": "thread",
|
||||
"field": "name"
|
||||
},
|
||||
"loggerName": {
|
||||
"$resolver": "logger",
|
||||
"field": "name"
|
||||
},
|
||||
"thrown": {
|
||||
"message": {
|
||||
"$resolver": "exception",
|
||||
"field": "message"
|
||||
},
|
||||
"extendedStackTrace": {
|
||||
"$resolver": "exception",
|
||||
"field": "stackTrace",
|
||||
"stackTrace": {
|
||||
"stringified": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,26 +8,13 @@
|
||||
<Console name="Console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %level %logger{36} - %msg%n"/>
|
||||
</Console>
|
||||
<!--<Kafka name="KafkaAppender4biz" topic="log-zt-fizz-core" syncSend="false">
|
||||
<JsonTemplateLayout eventTemplateUri="classpath:log4j2-kafka.json">
|
||||
<EventTemplateAdditionalField key="traceId" value="$${ctx:traceId}"/>
|
||||
</JsonTemplateLayout>
|
||||
<Property name="bootstrap.servers">1.1.1.1:9092</Property>
|
||||
</Kafka>
|
||||
<Kafka name="KafkaAppender4monitor" topic="log-zt-fizz-core-monitor" syncSend="false">
|
||||
<PatternLayout pattern="%m"/>
|
||||
<Property name="bootstrap.servers">1.1.1.1:9092</Property>
|
||||
</Kafka>-->
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Root level="warn">
|
||||
<AppenderRef ref="Console"/>
|
||||
<!--<AppenderRef ref="KafkaAppender4biz"/>-->
|
||||
</Root>
|
||||
<Logger name="org.apache.kafka" level="info"/>
|
||||
<Logger name="monitor" level="warn" additivity="false">
|
||||
<AppenderRef ref="Console"/>
|
||||
<!--<AppenderRef ref="KafkaAppender4monitor"/>-->
|
||||
</Logger>
|
||||
<Logger name="we" level="debug"/>
|
||||
</Loggers>
|
||||
|
||||
Reference in New Issue
Block a user