From 1c54a9a8acb96f5b5cc972b7dca503af643ab7b3 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 24 Mar 2025 19:36:41 -0500 Subject: [PATCH] Add 'RedirectState' table (used by oauth2 login flow); change userSession table from memory to rdbms backend --- .../metadata/OAuth2MetaDataProvider.java | 6 +++-- .../metadata/SampleMetaDataProvider.java | 20 ++++++++++++++- .../main/resources/prime-test-database.sql | 25 +++++++++++++++++++ 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/metadata/OAuth2MetaDataProvider.java b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/metadata/OAuth2MetaDataProvider.java index ce6310dd..ffb753fd 100644 --- a/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/metadata/OAuth2MetaDataProvider.java +++ b/qqq-sample-project/src/main/java/com/kingsrook/sampleapp/metadata/OAuth2MetaDataProvider.java @@ -28,6 +28,8 @@ import com.kingsrook.qqq.backend.core.model.metadata.MetaDataProducerInterface; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.authentication.OAuth2AuthenticationMetaData; import com.kingsrook.qqq.backend.core.model.metadata.authentication.QAuthenticationMetaData; +import com.kingsrook.qqq.backend.core.modules.authentication.implementations.metadata.RedirectStateMetaDataProducer; +import com.kingsrook.qqq.backend.core.modules.authentication.implementations.model.UserSession; /******************************************************************************* @@ -49,15 +51,15 @@ public class OAuth2MetaDataProvider implements MetaDataProducerInterface. -- +DROP TABLE IF EXISTS user_session; +CREATE TABLE user_session +( + id INTEGER AUTO_INCREMENT PRIMARY KEY, + create_date TIMESTAMP DEFAULT now(), + modify_date TIMESTAMP DEFAULT now(), + uuid VARCHAR(40) NOT NULL, + access_token MEDIUMTEXT, + user_id VARCHAR(100) +); +ALTER TABLE user_session ADD UNIQUE u_uuid (uuid); +ALTER TABLE user_session ADD INDEX i_user_id (user_id); + + +DROP TABLE IF EXISTS redirect_state; +CREATE TABLE redirect_state +( + id INTEGER AUTO_INCREMENT PRIMARY KEY, + create_date TIMESTAMP DEFAULT now(), + state VARCHAR(45) NOT NULL, + redirect_uri TEXT +); +ALTER TABLE redirect_state ADD UNIQUE u_state (state); + + DROP TABLE IF EXISTS person; CREATE TABLE person (