feat: store sessions in database

This commit is contained in:
Gauthier Roebroeck 2021-09-07 12:04:05 +08:00
parent 25b530aa9d
commit 4568914ef7
3 changed files with 29 additions and 0 deletions

View file

@ -31,6 +31,7 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
implementation("org.springframework.boot:spring-boot-starter-artemis")
implementation("org.springframework.boot:spring-boot-starter-jooq")
implementation("org.springframework.session:spring-session-jdbc")
kapt("org.springframework.boot:spring-boot-configuration-processor:2.5.2")

View file

@ -0,0 +1,24 @@
CREATE TABLE SPRING_SESSION
(
PRIMARY_ID CHARACTER(36) NOT NULL,
SESSION_ID CHARACTER(36) NOT NULL,
CREATION_TIME INTEGER NOT NULL,
LAST_ACCESS_TIME INTEGER NOT NULL,
MAX_INACTIVE_INTERVAL INTEGER NOT NULL,
EXPIRY_TIME INTEGER NOT NULL,
PRINCIPAL_NAME VARCHAR(100),
CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (PRIMARY_ID)
);
CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID);
CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME);
CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME);
CREATE TABLE SPRING_SESSION_ATTRIBUTES
(
SESSION_PRIMARY_ID CHAR(36) NOT NULL,
ATTRIBUTE_NAME VARCHAR(200) NOT NULL,
ATTRIBUTE_BYTES BLOB NOT NULL,
CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK PRIMARY KEY (SESSION_PRIMARY_ID, ATTRIBUTE_NAME),
CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_PRIMARY_ID) REFERENCES SPRING_SESSION (PRIMARY_ID) ON DELETE CASCADE
);

View file

@ -35,6 +35,10 @@ spring:
web:
resources:
add-mappings: false
session:
store-type: jdbc
jdbc:
initialize-schema: never
server:
servlet.session.timeout: 7d