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

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

3
.idea/workspace.xml generated
View File

@@ -8,8 +8,11 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/RepositoryServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ComponentsServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerRequestUnit.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/SafeServerExchangeUnit.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

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

View File

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

View File

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

View File

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