SHA256
09 12 25
Авторификация работает и тест авторификации проходит. (создание пользователя, два этапа создания сессии и рефреш сессии)
This commit is contained in:
@@ -1,30 +1,34 @@
|
||||
package shine.db.entities;
|
||||
|
||||
/**
|
||||
* ActiveSession — запись об активной сессии пользователя.
|
||||
* Модель активной сессии (таблица active_sessions).
|
||||
*
|
||||
* Поля:
|
||||
* - sessionId – строка (base64 от 32 байт)
|
||||
* - loginId – long
|
||||
* - sessionPwd – строка (секрет шага 1)
|
||||
* - storagePwd – строка (секрет клиента для хранения данных)
|
||||
* - sessionCreatedAtMs – long (время создания)
|
||||
* - lastAuthirificatedAtMs – long (последнее подтверждение/refresh)
|
||||
* - pushEndpoint – строка (WebPush, пока null/пусто)
|
||||
* - pushP256dhKey – строка (WebPush, пока null/пусто)
|
||||
* - pushAuthKey – строка (WebPush, пока null/пусто)
|
||||
* Поля соответствуют схеме:
|
||||
*
|
||||
* CREATE TABLE active_sessions (
|
||||
* sessionId TEXT NOT NULL PRIMARY KEY,
|
||||
* loginId INTEGER NOT NULL,
|
||||
* sessionPwd TEXT NOT NULL,
|
||||
* storagePwd TEXT NOT NULL,
|
||||
* sessionCreatedAtMs INTEGER NOT NULL,
|
||||
* lastAuthirificatedAtMs INTEGER NOT NULL,
|
||||
* pushEndpoint TEXT,
|
||||
* pushP256dhKey TEXT,
|
||||
* pushAuthKey TEXT,
|
||||
* FOREIGN KEY (loginId) REFERENCES solana_users(loginId)
|
||||
* );
|
||||
*/
|
||||
public class ActiveSession {
|
||||
|
||||
private String sessionId;
|
||||
private long loginId;
|
||||
private String sessionPwd;
|
||||
private String storagePwd;
|
||||
private long sessionCreatedAtMs;
|
||||
private long lastAuthirificatedAtMs;
|
||||
private String pushEndpoint;
|
||||
private String pushP256dhKey;
|
||||
private String pushAuthKey;
|
||||
private String sessionId; // TEXT base64(32 bytes)
|
||||
private long loginId; // INTEGER
|
||||
private String sessionPwd; // TEXT
|
||||
private String storagePwd; // TEXT
|
||||
private long sessionCreatedAtMs; // INTEGER
|
||||
private long lastAuthirificatedAtMs; // INTEGER
|
||||
private String pushEndpoint; // TEXT (nullable)
|
||||
private String pushP256dhKey; // TEXT (nullable)
|
||||
private String pushAuthKey; // TEXT (nullable)
|
||||
|
||||
public ActiveSession() {
|
||||
}
|
||||
@@ -49,9 +53,12 @@ public class ActiveSession {
|
||||
this.pushAuthKey = pushAuthKey;
|
||||
}
|
||||
|
||||
// --- getters / setters ---
|
||||
|
||||
public String getSessionId() {
|
||||
return sessionId;
|
||||
}
|
||||
|
||||
public void setSessionId(String sessionId) {
|
||||
this.sessionId = sessionId;
|
||||
}
|
||||
@@ -59,6 +66,7 @@ public class ActiveSession {
|
||||
public long getLoginId() {
|
||||
return loginId;
|
||||
}
|
||||
|
||||
public void setLoginId(long loginId) {
|
||||
this.loginId = loginId;
|
||||
}
|
||||
@@ -66,6 +74,7 @@ public class ActiveSession {
|
||||
public String getSessionPwd() {
|
||||
return sessionPwd;
|
||||
}
|
||||
|
||||
public void setSessionPwd(String sessionPwd) {
|
||||
this.sessionPwd = sessionPwd;
|
||||
}
|
||||
@@ -73,6 +82,7 @@ public class ActiveSession {
|
||||
public String getStoragePwd() {
|
||||
return storagePwd;
|
||||
}
|
||||
|
||||
public void setStoragePwd(String storagePwd) {
|
||||
this.storagePwd = storagePwd;
|
||||
}
|
||||
@@ -80,6 +90,7 @@ public class ActiveSession {
|
||||
public long getSessionCreatedAtMs() {
|
||||
return sessionCreatedAtMs;
|
||||
}
|
||||
|
||||
public void setSessionCreatedAtMs(long sessionCreatedAtMs) {
|
||||
this.sessionCreatedAtMs = sessionCreatedAtMs;
|
||||
}
|
||||
@@ -87,6 +98,7 @@ public class ActiveSession {
|
||||
public long getLastAuthirificatedAtMs() {
|
||||
return lastAuthirificatedAtMs;
|
||||
}
|
||||
|
||||
public void setLastAuthirificatedAtMs(long lastAuthirificatedAtMs) {
|
||||
this.lastAuthirificatedAtMs = lastAuthirificatedAtMs;
|
||||
}
|
||||
@@ -94,6 +106,7 @@ public class ActiveSession {
|
||||
public String getPushEndpoint() {
|
||||
return pushEndpoint;
|
||||
}
|
||||
|
||||
public void setPushEndpoint(String pushEndpoint) {
|
||||
this.pushEndpoint = pushEndpoint;
|
||||
}
|
||||
@@ -101,6 +114,7 @@ public class ActiveSession {
|
||||
public String getPushP256dhKey() {
|
||||
return pushP256dhKey;
|
||||
}
|
||||
|
||||
public void setPushP256dhKey(String pushP256dhKey) {
|
||||
this.pushP256dhKey = pushP256dhKey;
|
||||
}
|
||||
@@ -108,6 +122,7 @@ public class ActiveSession {
|
||||
public String getPushAuthKey() {
|
||||
return pushAuthKey;
|
||||
}
|
||||
|
||||
public void setPushAuthKey(String pushAuthKey) {
|
||||
this.pushAuthKey = pushAuthKey;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,23 @@
|
||||
package shine.db.entities;
|
||||
|
||||
/**
|
||||
* Локальная копия пользователя из Solana.
|
||||
*
|
||||
* Храним:
|
||||
* - login / loginId;
|
||||
* - bchId — id персонального блокчейна;
|
||||
* - loginKey — публичный ключ для логина / авторизации;
|
||||
* - deviceKey — публичный ключ устройства (второй ключ);
|
||||
* - bchLimit — лимит по количеству блоков / размеру цепочки (может быть null).
|
||||
*/
|
||||
public class SolanaUser {
|
||||
|
||||
private long loginId;
|
||||
private String login;
|
||||
private long bchId;
|
||||
private String pubkey0;
|
||||
private String pubkey1;
|
||||
private Integer bchLimit; // может быть null
|
||||
private String loginKey; // раньше pubkey0
|
||||
private String deviceKey; // раньше pubkey1
|
||||
private Integer bchLimit; // может быть null
|
||||
|
||||
public SolanaUser() {
|
||||
}
|
||||
@@ -15,14 +25,14 @@ public class SolanaUser {
|
||||
public SolanaUser(long loginId,
|
||||
String login,
|
||||
long bchId,
|
||||
String pubkey0,
|
||||
String pubkey1,
|
||||
String loginKey,
|
||||
String deviceKey,
|
||||
Integer bchLimit) {
|
||||
this.loginId = loginId;
|
||||
this.login = login;
|
||||
this.bchId = bchId;
|
||||
this.pubkey0 = pubkey0;
|
||||
this.pubkey1 = pubkey1;
|
||||
this.loginKey = loginKey;
|
||||
this.deviceKey = deviceKey;
|
||||
this.bchLimit = bchLimit;
|
||||
}
|
||||
|
||||
@@ -50,20 +60,22 @@ public class SolanaUser {
|
||||
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;
|
||||
/** Публичный ключ устройства (device key). */
|
||||
public String getDeviceKey() {
|
||||
return deviceKey;
|
||||
}
|
||||
|
||||
public void setPubkey1(String pubkey1) {
|
||||
this.pubkey1 = pubkey1;
|
||||
public void setDeviceKey(String deviceKey) {
|
||||
this.deviceKey = deviceKey;
|
||||
}
|
||||
|
||||
public Integer getBchLimit() {
|
||||
|
||||
Reference in New Issue
Block a user