промежуточный.безопасность на стороне сервера. Утром доделаю на стороне клиента

This commit is contained in:
2025-02-14 02:09:55 +03:00
parent 05b49a842e
commit a86a5b1e6b
8 changed files with 96 additions and 58 deletions

View File

@@ -3,6 +3,7 @@ import Common.Utils.Vector_;
import java.util.Vector;
public class Constants {
public static final int version = 1165;
public static final int planner_version = 6;
public static final int testingMaxKernels = 64; //вообще говоря, это параметр машины.
//--

View File

@@ -3,7 +3,7 @@ import Common.Utils.Utils_;
import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Repository.Server.ServerRequestUnit;
import _VisualDVM.Repository.Server.SaveServerExchangeUnit;
import java.io.File;
import java.io.IOException;
@@ -63,7 +63,7 @@ public class Visualiser extends Component {
//http://www.seostella.com/ru/article/2012/02/05/formatirovanie-daty-v-java.html
@Override
public void GetVersionInfo() {
version = ServerRequestUnit.version;
version = SaveServerExchangeUnit.version;
String pattern = "MMM dd yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern, Locale.ENGLISH);
date_text = df.format(getClassBuildTime());

View File

@@ -2,11 +2,13 @@ package _VisualDVM.Repository;
import Common.Database.Database;
import Common.Database.Objects.DBObject;
import Common.Database.Objects.riDBObject;
import Common.Database.RepositoryRefuseException;
import Common.Utils.InterruptThread;
import Common.Utils.Utils_;
import _VisualDVM.Constants;
import _VisualDVM.Passes.Server.RepositoryPass;
import _VisualDVM.Repository.Server.DiagnosticSignalHandler;
import _VisualDVM.Repository.Server.SafeServerExchangeUnit;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import _VisualDVM.Utils;
@@ -81,7 +83,8 @@ public abstract class RepositoryServer<D extends Database> {
}
//-DVMTestingChecker
public abstract int getPort();
protected abstract void SafeSession() throws Exception;
protected void Session() throws Exception {};
protected void UnsafeSession() throws Exception {}
protected void startAdditionalThreads() {
}
public void ActivateDB() {
@@ -181,50 +184,67 @@ public abstract class RepositoryServer<D extends Database> {
Print("Ожидание команды от клиента...");
Object transport = in.readObject();
Print("Команда прочитана.");
//-->
if (transport instanceof ServerExchangeUnit_2021) {
request = (ServerExchangeUnit_2021) transport;
response = null;
Print("клиент_2021: <- " + (request.codeName));
response = new ServerExchangeUnit_2021(ServerCode.OK);
Print("клиент: <- " + (request.codeName));
//--
try {
code = request.getCode();
response = new ServerExchangeUnit_2021(ServerCode.OK);
switch (code) {
case Ping:
Ping();
break;
case ReceiveFile:
ReceiveFile();
break;
case Email:
Email();
break;
case EditObject:
EditObject();
break;
case GetObjectCopyByPK:
GetObjectCopyByPK();
break;
case GetObjectsCopiesByPK:
GetObjectsCopiesByPK();
break;
case PublishObject:
PublishObject();
break;
case PublishObjects:
PublishObjects();
break;
case DeleteObjectByPK:
DeleteObjectByPK();
break;
case DeleteObjectsByPK:
DeleteObjectsByPK();
break;
case CloneObjectByPK:
CloneObject();
break;
default:
SafeSession();
break;
//--
if (transport instanceof SafeServerExchangeUnit){
SafeServerExchangeUnit safe_request= (SafeServerExchangeUnit) transport;
if (safe_request.version!=Constants.version){
//версия не совпала. не даем работать.
throw new RepositoryRefuseException("Версия клиента не совпадает с версией сервера!");
}
//БЕЗОПАСНАЯ СЕССИЯ
switch (code) {
case EditObject:
EditObject();
break;
case GetObjectCopyByPK:
GetObjectCopyByPK();
break;
case GetObjectsCopiesByPK:
GetObjectsCopiesByPK();
break;
case PublishObject:
PublishObject();
break;
case PublishObjects:
PublishObjects();
break;
case DeleteObjectByPK:
DeleteObjectByPK();
break;
case DeleteObjectsByPK:
DeleteObjectsByPK();
break;
case CloneObjectByPK:
CloneObject();
break;
default:
Session();
break;
}
}else {
//ОПАСНАЯ СЕССИЯ
switch (code){
case Ping:
Ping();
break;
case ReceiveFile:
ReceiveFile();
break;
case Email:
Email();
break;
default:
UnsafeSession();
break;
}
}
} catch (Exception ex) {
response = new ServerExchangeUnit_2021(ServerCode.FAIL, "Исключение сервера", ex);

View File

@@ -330,9 +330,8 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
}
//--
@Override
protected void SafeSession() throws Exception {
protected void UnsafeSession() throws Exception {
switch (code) {
// ПРОХОДЫ НЕЗАВИСИМЫЕ ОТ ВЕРСИИ
case CheckSubscriberRole:
CheckSubscriberRole();
break;
@@ -340,6 +339,7 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
GetComponentsBackUps();
break;
case UpdateComponent:
//возможно со стороны админа ввод подтверждения по почте запрашивать.
PublishComponent();
break;
case ReceiveComponent:
@@ -354,7 +354,13 @@ public class ComponentsServer extends RepositoryServer<BugReportsDatabase> {
case GetComponentChangesLog:
GetComponentChangesLog();
break;
//------------------------------------------------------------------------>>>>
default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
}
}
@Override
protected void Session() throws Exception {
switch (code) {
case ReceiveAllArchives:
ReceiveAllArchives();
break;

View File

@@ -0,0 +1,19 @@
package _VisualDVM.Repository.Server;
import _VisualDVM.Constants;
import java.io.Serializable;
public class SafeServerExchangeUnit extends ServerExchangeUnit_2021 {
public int version;
public SafeServerExchangeUnit(ServerCode code_in, String arg_in, Serializable object_in) {
super(code_in, arg_in, object_in);
version = Constants.version;
}
public SafeServerExchangeUnit(ServerCode code_in, String arg_in) {
super(code_in, arg_in);
version = Constants.version;
}
public SafeServerExchangeUnit(ServerCode code_in) {
super(code_in);
version = Constants.version;
}
}

View File

@@ -1,11 +0,0 @@
package _VisualDVM.Repository.Server;
import java.io.Serializable;
public class ServerRequestUnit {
public static final int version = 1165;
//--------------------------------------------
public String codeName;
public String arg;
public Serializable object;
//--------------------------------------------
}

View File

@@ -762,7 +762,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
}
//--
@Override
protected void SafeSession() throws Exception {
protected void Session() throws Exception {
switch (code) {
case PerformAutoSapforTesting:
PerformAutoSapforTesting();