From 6e01e832596e1769bdd53cb634b3019833e93bf4 Mon Sep 17 00:00:00 2001 From: wangbin Date: Fri, 25 Dec 2020 20:57:17 +0800 Subject: [PATCH] 1.注册server时不发送请求 2.请求增加seckey --- build.gradle | 2 +- src/main/java/com/taover/heartbeat/ClientHolderImpl.java | 7 ++++++- src/main/java/com/taover/heartbeat/ServerHolderImpl.java | 2 +- src/main/java/com/taover/heartbeat/bean/ClientRequest.java | 15 +++++++++++++-- src/main/java/com/taover/heartbeat/bean/Instance.java | 2 ++ src/main/java/com/taover/heartbeat/bean/ServerInstance.java | 7 +++++-- 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index cf794f4..98750b9 100644 --- a/build.gradle +++ b/build.gradle @@ -55,7 +55,7 @@ uploadArchives { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) } pom.project { - version '1.1.9' + version '1.1.11' artifactId ARTIFACT_Id groupId GROUP_ID packaging TYPE diff --git a/src/main/java/com/taover/heartbeat/ClientHolderImpl.java b/src/main/java/com/taover/heartbeat/ClientHolderImpl.java index 92a9b66..3ae5449 100644 --- a/src/main/java/com/taover/heartbeat/ClientHolderImpl.java +++ b/src/main/java/com/taover/heartbeat/ClientHolderImpl.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils; import com.taover.heartbeat.bean.ClientInstance; import com.taover.heartbeat.bean.ClientRequest; +import com.taover.heartbeat.bean.Instance; +import com.taover.util.UtilEncrypt; public class ClientHolderImpl implements ClientHolder{ Map clientMap = new HashMap(); @@ -42,9 +44,12 @@ public class ClientHolderImpl implements ClientHolder{ } private boolean validClientRequest(ClientRequest clientRequest) { + long time = clientRequest.getUnixtime(); + String seckey = UtilEncrypt.MD5Lower32(clientRequest.getCode()+clientRequest.getFixRateSec()+clientRequest.getMaxWaitSec()+time+Instance.SERVER_ENCRPT_SURFFIX); if(StringUtils.isNotBlank(clientRequest.getCode()) && StringUtils.isNotBlank(clientRequest.getIp()) - && clientRequest.getFixRateSec() > 0) { + && clientRequest.getFixRateSec() > 0 + && seckey.equals(clientRequest.getSeckey())) { return true; }else { return false; diff --git a/src/main/java/com/taover/heartbeat/ServerHolderImpl.java b/src/main/java/com/taover/heartbeat/ServerHolderImpl.java index 93ff8b5..da93d9b 100644 --- a/src/main/java/com/taover/heartbeat/ServerHolderImpl.java +++ b/src/main/java/com/taover/heartbeat/ServerHolderImpl.java @@ -25,7 +25,7 @@ public class ServerHolderImpl implements ServerHolder { serverMap.put(server.getIdentity(), server); } } - server.flush(); + //server.flush(); } @Override diff --git a/src/main/java/com/taover/heartbeat/bean/ClientRequest.java b/src/main/java/com/taover/heartbeat/bean/ClientRequest.java index beecbb7..1bae7e8 100644 --- a/src/main/java/com/taover/heartbeat/bean/ClientRequest.java +++ b/src/main/java/com/taover/heartbeat/bean/ClientRequest.java @@ -8,6 +8,7 @@ public class ClientRequest { private int maxWaitSec = Instance.DEFAULT_MAX_WAIT_SEC; private int fixRateSec = Instance.DEFAULT_FIX_RATE_SEC; private long unixtime; + private String seckey = ""; public String getCode() { return code; @@ -39,13 +40,20 @@ public class ClientRequest { public void setUnixtime(long unixtime) { this.unixtime = unixtime; } + public String getSeckey() { + return seckey; + } + public void setSeckey(String seckey) { + this.seckey = seckey; + } - public ClientRequest(String code, String ip, int maxWaitSec, int fixRateSec, long unixtime) { + public ClientRequest(String code, String ip, int maxWaitSec, int fixRateSec, long unixtime, String seckey) { this.code = code; this.ip = ip; this.maxWaitSec = maxWaitSec; this.fixRateSec = fixRateSec; this.unixtime = unixtime; + this.seckey = seckey; } public ClientRequest(ClientRequest clientRequest) { @@ -54,6 +62,7 @@ public class ClientRequest { this.maxWaitSec = clientRequest.getMaxWaitSec(); this.fixRateSec = clientRequest.getFixRateSec(); this.unixtime = clientRequest.getUnixtime(); + this.seckey = clientRequest.getSeckey(); } public static ClientRequest createClientRequest(HttpServletRequest request) { @@ -61,11 +70,13 @@ public class ClientRequest { String maxWaitSec = request.getParameter("maxWaitSec"); String fixRateSec = request.getParameter("fixRateSec"); String unixtime = request.getParameter("unixtime"); + String seckey = request.getParameter("seckey"); String ip = request.getRemoteHost(); return new ClientRequest(code, ip, maxWaitSec==null?Instance.DEFAULT_MAX_WAIT_SEC:Integer.valueOf(maxWaitSec), fixRateSec==null?Instance.DEFAULT_FIX_RATE_SEC:Integer.valueOf(fixRateSec), - unixtime==null?System.currentTimeMillis()/1000:Long.valueOf(unixtime)); + unixtime==null?System.currentTimeMillis()/1000:Long.valueOf(unixtime), + seckey); } public String getIdentity() { diff --git a/src/main/java/com/taover/heartbeat/bean/Instance.java b/src/main/java/com/taover/heartbeat/bean/Instance.java index c949662..13a0b6b 100644 --- a/src/main/java/com/taover/heartbeat/bean/Instance.java +++ b/src/main/java/com/taover/heartbeat/bean/Instance.java @@ -1,6 +1,8 @@ package com.taover.heartbeat.bean; public interface Instance { + public static final String SERVER_ENCRPT_SURFFIX = "taover"; + public static final int DEFAULT_MAX_WAIT_SEC = -1; public static final int DEFAULT_FIX_RATE_SEC = -1; diff --git a/src/main/java/com/taover/heartbeat/bean/ServerInstance.java b/src/main/java/com/taover/heartbeat/bean/ServerInstance.java index 692b2c7..7fa6291 100644 --- a/src/main/java/com/taover/heartbeat/bean/ServerInstance.java +++ b/src/main/java/com/taover/heartbeat/bean/ServerInstance.java @@ -2,6 +2,7 @@ package com.taover.heartbeat.bean; import java.net.SocketTimeoutException; +import com.taover.util.UtilEncrypt; import com.taover.util.UtilHttpByOkHttp; public class ServerInstance implements Instance { @@ -53,8 +54,10 @@ public class ServerInstance implements Instance { } } - private String getUrlParams() { - return "?code="+this.code+"&fixRateSec="+this.fixRateSec+"&maxWaitSec="+this.maxWaitSec+"&unixtime="+(System.currentTimeMillis()/1000); + private String getUrlParams() { + long time = (System.currentTimeMillis()/1000L); + String seckey = UtilEncrypt.MD5Lower32(this.code+this.fixRateSec+this.maxWaitSec+time+SERVER_ENCRPT_SURFFIX); + return "?code="+this.code+"&fixRateSec="+this.fixRateSec+"&maxWaitSec="+this.maxWaitSec+"&unixtime="+time+"&seckey="+seckey; } private boolean isLatestRequestGreateEqualFixRateSec() { -- libgit2 0.21.2