SHA256
09 12 25
Авторификация работает и тест авторификации проходит. (создание пользователя, два этапа создания сессии и рефреш сессии)
This commit is contained in:
+25
-20
@@ -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() {
|
||||
|
||||
+11
-2
@@ -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 и т.п.
|
||||
}
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+25
-7
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user