Авторификация работает и тест авторификации проходит.

(создание пользователя, два этапа создания сессии и рефреш сессии)
This commit is contained in:
AidarKC
2025-12-09 20:04:18 +03:00
parent 2ed4f6d666
commit 888bb1595f
12 changed files with 723 additions and 372 deletions
@@ -3,27 +3,32 @@ package server.logic.ws_protocol.JSON.entyties.tempToTest;
import server.logic.ws_protocol.JSON.entyties.NetRequest;
/**
* Запрос AddUser.
*.
* Ожидаемый JSON:
* Запрос AddUser — временная/тестовая регистрация локального пользователя.
*
* Клиент отправляет:
*
* {
* "op": "AddUser",
* "requestId": "...",
* "login": "...",
* "loginId": 123,
* "bchId": 456,
* "pubkey0": "...",
* "pubkey1": "...",
* "bchLimit": 1000
* "requestId": "test-add-1",
* "payload": {
* "login": "anya",
* "loginId": 100211,
* "bchId": 4222,
* "loginKey": "base64-ed25519-public-key-login",
* "deviceKey": "base64-ed25519-public-key-device",
* "bchLimit": 1000000
* }
* }
*
* Все поля лежат внутри payload.
*/
public class NetAddUserRequest extends NetRequest {
private String login;
private long loginId;
private long bchId;
private String pubkey0;
private String pubkey1;
private String loginKey;
private String deviceKey;
private Integer bchLimit;
public String getLogin() {
@@ -50,20 +55,20 @@ public class NetAddUserRequest extends NetRequest {
this.bchId = bchId;
}
public String getPubkey0() {
return pubkey0;
public String getLoginKey() {
return loginKey;
}
public void setPubkey0(String pubkey0) {
this.pubkey0 = pubkey0;
public void setLoginKey(String loginKey) {
this.loginKey = loginKey;
}
public String getPubkey1() {
return pubkey1;
public String getDeviceKey() {
return deviceKey;
}
public void setPubkey1(String pubkey1) {
this.pubkey1 = pubkey1;
public void setDeviceKey(String deviceKey) {
this.deviceKey = deviceKey;
}
public Integer getBchLimit() {
@@ -4,8 +4,17 @@ import server.logic.ws_protocol.JSON.entyties.NetResponse;
/**
* Успешный ответ на AddUser.
* Дополнительных полей нет — достаточно status=200.
*
* Сейчас дополнительных полей нет — достаточно status=200.
*
* Пример:
* {
* "op": "AddUser",
* "requestId": "test-add-1",
* "status": 200,
* "payload": { }
* }
*/
public class NetAddUserResponse extends NetResponse {
// Можно потом добавить какие-то данные, если понадобится.
// При необходимости сюда можно добавить, например, флаг created/updated и т.п.
}
@@ -119,7 +119,7 @@ public class NetAuthSessionNewStep2Handler implements JsonMessageHandler {
}
// --- выбираем публичный ключ pubkey1 ---
String pubKeyB64 = user.getPubkey1();
String pubKeyB64 = user.getDeviceKey();
if (pubKeyB64 == null || pubKeyB64.isBlank()) {
return NetExceptionResponseFactory.error(
req,
@@ -16,7 +16,25 @@ import shine.db.entities.SolanaUser;
import java.sql.SQLException;
/**
* Временный хэндлер AddUser (тестовая регистрация).
* Временный хэндлер AddUser (тестовая регистрация локального пользователя).
*
* Ожидаемый запрос (все поля в payload):
* {
* "op": "AddUser",
* "requestId": "...",
* "payload": {
* "login": "anya",
* "loginId": 100211,
* "bchId": 4222,
* "loginKey": "base64-pubkey-login",
* "deviceKey": "base64-pubkey-device",
* "bchLimit": 1000000
* }
* }
*
* При успехе:
* - пользователь сохраняется в таблицу solana_users;
* - возвращается status=200 и пустой payload.
*/
public class NetAddUserHandler implements JsonMessageHandler {
@@ -28,15 +46,15 @@ public class NetAddUserHandler implements JsonMessageHandler {
// Одна общая проверка всех ключевых полей
if (req.getLogin() == null || req.getLogin().isBlank()
|| req.getPubkey0() == null || req.getPubkey0().isBlank()
|| req.getPubkey1() == null || req.getPubkey1().isBlank()
|| req.getLoginKey() == null || req.getLoginKey().isBlank()
|| req.getDeviceKey() == null || req.getDeviceKey().isBlank()
|| req.getBchLimit() == null) {
return NetExceptionResponseFactory.error(
req,
WireCodes.Status.BAD_REQUEST,
"BAD_FIELDS",
"Некорректные или пустые поля: login, pubkey0, pubkey1, bchLimit"
"Некорректные или пустые поля: login, loginKey, deviceKey, bchLimit"
);
}
@@ -47,8 +65,8 @@ public class NetAddUserHandler implements JsonMessageHandler {
req.getLoginId(),
req.getLogin(),
req.getBchId(),
req.getPubkey0(),
req.getPubkey1(),
req.getLoginKey(),
req.getDeviceKey(),
req.getBchLimit()
);
@@ -58,7 +76,7 @@ public class NetAddUserHandler implements JsonMessageHandler {
resp.setOp(req.getOp());
resp.setRequestId(req.getRequestId());
resp.setStatus(WireCodes.Status.OK);
// payload сам станет {} через JsonInboundProcessor
// payload станет {} через JsonInboundProcessor
log.info("✅ Пользователь добавлен: login={}, loginId={}", req.getLogin(), req.getLoginId());
return resp;