feat: add get&set ClusterName

This commit is contained in:
yanghuanyu 2021-12-20 10:32:36 +08:00
parent 50ae835148
commit 537ecbfc6c

View File

@ -25,6 +25,7 @@ import java.util.*;
public class NCManagerAction {
// key为centerManager的数据表示平台管理员(中心管理员)
public static final String centerManger = "__CenterManager__";
public static final String clusterName = "__ClusterName__";
static final String Licence = "__LICENCE___";
static final ECPublicKeyParameters licencePub =
BCECUtil.createECPublicKeyFromStrParameters(
@ -49,12 +50,14 @@ public class NCManagerAction {
&& !StringUtil.isNullOrEmpty(pubkey)
&& pubkey.equals(ret);
}
private void simpleReply(ResultCallback resultCallback, String action, String data){
private void simpleReply(ResultCallback resultCallback, String action, String data) {
JsonObject jsonResult = new JsonObject();
jsonResult.addProperty("action", action);
jsonResult.addProperty("data", data);
resultCallback.onResult(jsonResult);
}
@Action(userPermission = 0)
public void getNodeSessionID(JsonObject json, ResultCallback resultCallback) {
getSessionID(json, resultCallback);
@ -80,12 +83,29 @@ public class NCManagerAction {
@Action(userPermission = 0)
public void getManagerPubkey(JsonObject json, ResultCallback resultCallback) {
String ret = KeyValueDBUtil.instance.getValue(NCTables.ConfigDB.toString(), centerManger);
simpleReply(resultCallback,"onGetManagerPubkey",ret);
simpleReply(resultCallback, "onGetManagerPubkey", ret);
}
@Action(userPermission = 0)
public void getClusterName(JsonObject json, ResultCallback resultCallback) {
String ret = KeyValueDBUtil.instance.getValue(NCTables.ConfigDB.toString(), clusterName);
simpleReply(resultCallback, "onGetClusterName", ret);
}
@Action(userPermission = 0)
public void setClusterName(JsonObject json, ResultCallback resultCallback) {
if (json.has("name")) {
KeyValueDBUtil.instance.setValue(
NCTables.ConfigDB.toString(), clusterName, json.get("name").getAsString());
simpleReply(resultCallback, "onSetClusterName", "success");
} else {
simpleReply(resultCallback, "onSetClusterName", "failed");
}
}
public void getRole(JsonObject json, ResultCallback resultCallback) {
if (pubKey == null) {
simpleReply(resultCallback,"onLogin",Role.Anonymous.name());
simpleReply(resultCallback, "onLogin", Role.Anonymous.name());
return;
}
try {
@ -107,16 +127,18 @@ public class NCManagerAction {
role = Role.Anonymous.name();
}
handler.setPermission(Role.compoundValue(role.split(",")));
simpleReply(resultCallback,"onLogin",role);
simpleReply(resultCallback, "onLogin", role);
} else {
KeyValueDBUtil.instance.setValue(
NCTables.ConfigDB.toString(), centerManger, pubKey);
KeyValueDBUtil.instance.setValue(
NCTables.ConfigDB.toString(), clusterName, "clusterName_" + pubKey.substring(0, 5));
handler.setPermission(0x30000ffL);
simpleReply(resultCallback,"onLogin","CenterManager");
simpleReply(resultCallback, "onLogin", "CenterManager");
}
} catch (Exception e) {
e.printStackTrace();
simpleReply(resultCallback,"onLogin",Role.Anonymous.name());
simpleReply(resultCallback, "onLogin", Role.Anonymous.name());
}
}
@ -125,7 +147,7 @@ public class NCManagerAction {
long start = System.currentTimeMillis();
JsonObject jsonResult = new JsonObject();
if (sessionID == null) {
simpleReply(resultCallback,"onLogin",Role.Anonymous.name());
simpleReply(resultCallback, "onLogin", Role.Anonymous.name());
return;
}
String signature = json.get("signature").getAsString();
@ -138,7 +160,7 @@ public class NCManagerAction {
LOGGER.debug("设置公钥" + pubKey);
getRole(json, resultCallback);
} else {
simpleReply(resultCallback,"onLogin",Role.Anonymous.name());
simpleReply(resultCallback, "onLogin", Role.Anonymous.name());
}
long end = System.currentTimeMillis();
LOGGER.debug("time:" + (end - start));
@ -148,7 +170,7 @@ public class NCManagerAction {
public void applyRole(JsonObject json, ResultCallback resultCallback) {
long start = System.currentTimeMillis();
if (pubKey == null) {
simpleReply(resultCallback,"onApplyRole","missing pubKey");
simpleReply(resultCallback, "onApplyRole", "missing pubKey");
return;
}
if (json.has("role")) {
@ -158,7 +180,7 @@ public class NCManagerAction {
return;
}
}
simpleReply(resultCallback,"onApplyRole","failed");
simpleReply(resultCallback, "onApplyRole", "failed");
}
@Action(userPermission = 1 << 6)
@ -172,10 +194,10 @@ public class NCManagerAction {
NCTables.NodeTime.toString(),
json.get("nodePubKey").getAsString(),
Long.toString(new Date().getTime()));
simpleReply(resultCallback,"onAddNodes","success");
simpleReply(resultCallback, "onAddNodes", "success");
} catch (Exception e) {
e.printStackTrace();
simpleReply(resultCallback,"onAddNodes","failed");
simpleReply(resultCallback, "onAddNodes", "failed");
}
}
@ -183,7 +205,7 @@ public class NCManagerAction {
String str = KeyValueDBUtil.instance.getValue(NCTables.ApplyRole.toString(), pubKey);
String already = KeyValueDBUtil.instance.getValue(NCTables.NodeUser.toString(), pubKey);
if (already != null && already.contains(role.toString())) {
simpleReply(resultCallback,"onApplyRole","already has!");
simpleReply(resultCallback, "onApplyRole", "already has!");
return;
}
if (str == null || str.length() == 0) {
@ -198,7 +220,7 @@ public class NCManagerAction {
NCTables.ApplyTime.toString(), pubKey, Long.toString(new Date().getTime()));
}
}
simpleReply(resultCallback,"onApplyRole","success!");
simpleReply(resultCallback, "onApplyRole", "success!");
}
@Action(userPermission = 1 << 3)
@ -221,13 +243,13 @@ public class NCManagerAction {
boolean isAccept = json.get("isAccept").getAsBoolean();
LOGGER.debug("[NCManagerAction] " + json.toString());
if (pubKey == null || pubKey.length() == 0) {
simpleReply(resultCallback,"onAuthNodeManager","missing pubKey");
simpleReply(resultCallback, "onAuthNodeManager", "missing pubKey");
return;
}
if (!isAccept) {
KeyValueDBUtil.instance.delete(NCTables.ApplyRole.toString(), pubKey);
KeyValueDBUtil.instance.delete(NCTables.ApplyTime.toString(), pubKey);
simpleReply(resultCallback,"onAuthNodeManager","success");
simpleReply(resultCallback, "onAuthNodeManager", "success");
return;
}
String already = KeyValueDBUtil.instance.getValue(NCTables.NodeUser.toString(), pubKey);
@ -235,7 +257,7 @@ public class NCManagerAction {
if (roles == null || roles.length() == 0) {
KeyValueDBUtil.instance.delete(NCTables.ApplyRole.toString(), pubKey);
KeyValueDBUtil.instance.delete(NCTables.ApplyTime.toString(), pubKey);
simpleReply(resultCallback,"onAuthNodeManager","empty apply!");
simpleReply(resultCallback, "onAuthNodeManager", "empty apply!");
return;
}
if (already != null && already.length() > 0) {
@ -248,7 +270,7 @@ public class NCManagerAction {
NCTables.NodeTime.toString(), pubKey, Long.toString(new Date().getTime()));
KeyValueDBUtil.instance.delete(NCTables.ApplyRole.toString(), pubKey);
KeyValueDBUtil.instance.delete(NCTables.ApplyTime.toString(), pubKey);
simpleReply(resultCallback,"onAuthNodeManager","success");
simpleReply(resultCallback, "onAuthNodeManager", "success");
long end = System.currentTimeMillis();
LOGGER.debug("[authNodeManager:time]" + (end - start));
}
@ -274,7 +296,7 @@ public class NCManagerAction {
String pubKey = json.get("pubKey").getAsString();
KeyValueDBUtil.instance.delete(NCTables.NodeUser.toString(), pubKey);
KeyValueDBUtil.instance.delete(NCTables.NodeTime.toString(), pubKey);
simpleReply(resultCallback,"onDelete","success");
simpleReply(resultCallback, "onDelete", "success");
}
@Action(userPermission = 1 << 4)
@ -350,7 +372,7 @@ public class NCManagerAction {
String sign = json.get("sign").getAsString();
String content = json.get("content").getAsString();
if (StringUtil.isNullOrEmpty(sign) || StringUtil.isNullOrEmpty(content)) {
simpleReply(resultCallback,"onUpdateLicence","missing signature or content");
simpleReply(resultCallback, "onUpdateLicence", "missing signature or content");
return;
}
long expiredDate;
@ -363,16 +385,16 @@ public class NCManagerAction {
uuid = jo.get("uuid").getAsString();
} catch (Exception e) {
simpleReply(resultCallback,"onUpdateLicence","content error");
simpleReply(resultCallback, "onUpdateLicence", "content error");
return;
}
if (expiredDate == 0 || nodeCount == 0) {
simpleReply(resultCallback,"onUpdateLicence","parse expiredDate/nodeCount error");
simpleReply(resultCallback, "onUpdateLicence", "parse expiredDate/nodeCount error");
return;
}
if (!uuid.equals(
ByteUtil.encodeBASE64(HardwareInfo.getCPUID().getBytes()).replaceAll("\n", ""))) {
simpleReply(resultCallback,"onUpdateLicence","invalid licence");
simpleReply(resultCallback, "onUpdateLicence", "invalid licence");
return;
}
boolean verify =
@ -381,11 +403,11 @@ public class NCManagerAction {
if (verify) {
KeyValueDBUtil.instance.setValue(
NCTables.ConfigDB.toString(), Licence, json.toString());
simpleReply(resultCallback,"onUpdateLicence","success");
simpleReply(resultCallback, "onUpdateLicence", "success");
long end = System.currentTimeMillis();
LOGGER.debug("[listLicence:time]" + (end - start));
return;
} else simpleReply(resultCallback,"onUpdateLicence","failed");
} else simpleReply(resultCallback, "onUpdateLicence", "failed");
long end = System.currentTimeMillis();
LOGGER.debug("[updateLicence:time]" + (end - start));
}