Commit 6e01e832596e1769bdd53cb634b3019833e93bf4

Authored by wangbin
1 parent 89a803bf
Exists in master

1.注册server时不发送请求 2.请求增加seckey

build.gradle
... ... @@ -55,7 +55,7 @@ uploadArchives {
55 55 authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
56 56 }
57 57 pom.project {
58   - version '1.1.9'
  58 + version '1.1.11'
59 59 artifactId ARTIFACT_Id
60 60 groupId GROUP_ID
61 61 packaging TYPE
... ...
src/main/java/com/taover/heartbeat/ClientHolderImpl.java
... ... @@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils;
9 9  
10 10 import com.taover.heartbeat.bean.ClientInstance;
11 11 import com.taover.heartbeat.bean.ClientRequest;
  12 +import com.taover.heartbeat.bean.Instance;
  13 +import com.taover.util.UtilEncrypt;
12 14  
13 15 public class ClientHolderImpl implements ClientHolder{
14 16 Map<String, ClientInstance> clientMap = new HashMap<String, ClientInstance>();
... ... @@ -42,9 +44,12 @@ public class ClientHolderImpl implements ClientHolder{
42 44 }
43 45  
44 46 private boolean validClientRequest(ClientRequest clientRequest) {
  47 + long time = clientRequest.getUnixtime();
  48 + String seckey = UtilEncrypt.MD5Lower32(clientRequest.getCode()+clientRequest.getFixRateSec()+clientRequest.getMaxWaitSec()+time+Instance.SERVER_ENCRPT_SURFFIX);
45 49 if(StringUtils.isNotBlank(clientRequest.getCode())
46 50 && StringUtils.isNotBlank(clientRequest.getIp())
47   - && clientRequest.getFixRateSec() > 0) {
  51 + && clientRequest.getFixRateSec() > 0
  52 + && seckey.equals(clientRequest.getSeckey())) {
48 53 return true;
49 54 }else {
50 55 return false;
... ...
src/main/java/com/taover/heartbeat/ServerHolderImpl.java
... ... @@ -25,7 +25,7 @@ public class ServerHolderImpl implements ServerHolder {
25 25 serverMap.put(server.getIdentity(), server);
26 26 }
27 27 }
28   - server.flush();
  28 + //server.flush();
29 29 }
30 30  
31 31 @Override
... ...
src/main/java/com/taover/heartbeat/bean/ClientRequest.java
... ... @@ -8,6 +8,7 @@ public class ClientRequest {
8 8 private int maxWaitSec = Instance.DEFAULT_MAX_WAIT_SEC;
9 9 private int fixRateSec = Instance.DEFAULT_FIX_RATE_SEC;
10 10 private long unixtime;
  11 + private String seckey = "";
11 12  
12 13 public String getCode() {
13 14 return code;
... ... @@ -39,13 +40,20 @@ public class ClientRequest {
39 40 public void setUnixtime(long unixtime) {
40 41 this.unixtime = unixtime;
41 42 }
  43 + public String getSeckey() {
  44 + return seckey;
  45 + }
  46 + public void setSeckey(String seckey) {
  47 + this.seckey = seckey;
  48 + }
42 49  
43   - public ClientRequest(String code, String ip, int maxWaitSec, int fixRateSec, long unixtime) {
  50 + public ClientRequest(String code, String ip, int maxWaitSec, int fixRateSec, long unixtime, String seckey) {
44 51 this.code = code;
45 52 this.ip = ip;
46 53 this.maxWaitSec = maxWaitSec;
47 54 this.fixRateSec = fixRateSec;
48 55 this.unixtime = unixtime;
  56 + this.seckey = seckey;
49 57 }
50 58  
51 59 public ClientRequest(ClientRequest clientRequest) {
... ... @@ -54,6 +62,7 @@ public class ClientRequest {
54 62 this.maxWaitSec = clientRequest.getMaxWaitSec();
55 63 this.fixRateSec = clientRequest.getFixRateSec();
56 64 this.unixtime = clientRequest.getUnixtime();
  65 + this.seckey = clientRequest.getSeckey();
57 66 }
58 67  
59 68 public static ClientRequest createClientRequest(HttpServletRequest request) {
... ... @@ -61,11 +70,13 @@ public class ClientRequest {
61 70 String maxWaitSec = request.getParameter("maxWaitSec");
62 71 String fixRateSec = request.getParameter("fixRateSec");
63 72 String unixtime = request.getParameter("unixtime");
  73 + String seckey = request.getParameter("seckey");
64 74 String ip = request.getRemoteHost();
65 75 return new ClientRequest(code, ip,
66 76 maxWaitSec==null?Instance.DEFAULT_MAX_WAIT_SEC:Integer.valueOf(maxWaitSec),
67 77 fixRateSec==null?Instance.DEFAULT_FIX_RATE_SEC:Integer.valueOf(fixRateSec),
68   - unixtime==null?System.currentTimeMillis()/1000:Long.valueOf(unixtime));
  78 + unixtime==null?System.currentTimeMillis()/1000:Long.valueOf(unixtime),
  79 + seckey);
69 80 }
70 81  
71 82 public String getIdentity() {
... ...
src/main/java/com/taover/heartbeat/bean/Instance.java
1 1 package com.taover.heartbeat.bean;
2 2  
3 3 public interface Instance {
  4 + public static final String SERVER_ENCRPT_SURFFIX = "taover";
  5 +
4 6 public static final int DEFAULT_MAX_WAIT_SEC = -1;
5 7 public static final int DEFAULT_FIX_RATE_SEC = -1;
6 8  
... ...
src/main/java/com/taover/heartbeat/bean/ServerInstance.java
... ... @@ -2,6 +2,7 @@ package com.taover.heartbeat.bean;
2 2  
3 3 import java.net.SocketTimeoutException;
4 4  
  5 +import com.taover.util.UtilEncrypt;
5 6 import com.taover.util.UtilHttpByOkHttp;
6 7  
7 8 public class ServerInstance implements Instance {
... ... @@ -53,8 +54,10 @@ public class ServerInstance implements Instance {
53 54 }
54 55 }
55 56  
56   - private String getUrlParams() {
57   - return "?code="+this.code+"&fixRateSec="+this.fixRateSec+"&maxWaitSec="+this.maxWaitSec+"&unixtime="+(System.currentTimeMillis()/1000);
  57 + private String getUrlParams() {
  58 + long time = (System.currentTimeMillis()/1000L);
  59 + String seckey = UtilEncrypt.MD5Lower32(this.code+this.fixRateSec+this.maxWaitSec+time+SERVER_ENCRPT_SURFFIX);
  60 + return "?code="+this.code+"&fixRateSec="+this.fixRateSec+"&maxWaitSec="+this.maxWaitSec+"&unixtime="+time+"&seckey="+seckey;
58 61 }
59 62  
60 63 private boolean isLatestRequestGreateEqualFixRateSec() {
... ...