From 35b998a0e874d57cf64f0add296ec49082834dab Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 15 Mar 2026 12:32:38 +0100 Subject: [PATCH] refactor: remove unused Spring Session JDBC dependency and tables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Spring Session was pulled in as a dependency but never used — auth is stateless HTTP Basic, so sessions are never written. Removed: - spring-boot-starter-session-jdbc (and test variant) from pom.xml - spring_session and spring_session_attributes tables/indexes/constraints from V1__initial_schema.sql Added V2 migration to drop the tables on existing databases that already ran V1. Co-Authored-By: Claude Sonnet 4.6 --- backend/pom.xml | 9 --- .../db/migration/V1__initial_schema.sql | 69 ------------------- .../V2__drop_spring_session_tables.sql | 9 +++ 3 files changed, 9 insertions(+), 78 deletions(-) create mode 100644 backend/src/main/resources/db/migration/V2__drop_spring_session_tables.sql diff --git a/backend/pom.xml b/backend/pom.xml index 74e95a2e..e525f1c1 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -50,10 +50,6 @@ org.springframework.boot spring-boot-starter-security - - org.springframework.boot - spring-boot-starter-session-jdbc - org.springframework.boot spring-boot-starter-webmvc @@ -98,11 +94,6 @@ spring-boot-starter-security-test test - - org.springframework.boot - spring-boot-starter-session-jdbc-test - test - org.springframework.boot spring-boot-starter-webmvc-test diff --git a/backend/src/main/resources/db/migration/V1__initial_schema.sql b/backend/src/main/resources/db/migration/V1__initial_schema.sql index 6077760d..2798a2cd 100644 --- a/backend/src/main/resources/db/migration/V1__initial_schema.sql +++ b/backend/src/main/resources/db/migration/V1__initial_schema.sql @@ -66,32 +66,6 @@ CREATE TABLE public.persons ( ); --- --- Name: spring_session; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.spring_session ( - primary_id character(36) NOT NULL, - session_id character(36) NOT NULL, - creation_time bigint NOT NULL, - last_access_time bigint NOT NULL, - max_inactive_interval integer NOT NULL, - expiry_time bigint NOT NULL, - principal_name character varying(100) -); - - --- --- Name: spring_session_attributes; Type: TABLE; Schema: public; Owner: - --- - -CREATE TABLE public.spring_session_attributes ( - session_primary_id character(36) NOT NULL, - attribute_name character varying(200) NOT NULL, - attribute_bytes bytea NOT NULL -); - - -- -- Name: tag; Type: TABLE; Schema: public; Owner: - -- @@ -168,22 +142,6 @@ ALTER TABLE ONLY public.persons ADD CONSTRAINT persons_pkey PRIMARY KEY (id); --- --- Name: spring_session_attributes spring_session_attributes_pk; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.spring_session_attributes - ADD CONSTRAINT spring_session_attributes_pk PRIMARY KEY (session_primary_id, attribute_name); - - --- --- Name: spring_session spring_session_pk; Type: CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.spring_session - ADD CONSTRAINT spring_session_pk PRIMARY KEY (primary_id); - - -- -- Name: tag tag_name_key; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -240,27 +198,6 @@ ALTER TABLE ONLY public.users ADD CONSTRAINT users_username_key UNIQUE (username); --- --- Name: spring_session_ix1; Type: INDEX; Schema: public; Owner: - --- - -CREATE UNIQUE INDEX spring_session_ix1 ON public.spring_session USING btree (session_id); - - --- --- Name: spring_session_ix2; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX spring_session_ix2 ON public.spring_session USING btree (expiry_time); - - --- --- Name: spring_session_ix3; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX spring_session_ix3 ON public.spring_session USING btree (principal_name); - - -- -- Name: users_groups fk1qwqr38oun4xcttk576wevhxn; Type: FK CONSTRAINT; Schema: public; Owner: - -- @@ -325,10 +262,4 @@ ALTER TABLE ONLY public.document_receivers ADD CONSTRAINT fks7t60twjgfmpeqcuc3g0fvjpm FOREIGN KEY (document_id) REFERENCES public.documents(id); --- --- Name: spring_session_attributes spring_session_attributes_fk; Type: FK CONSTRAINT; Schema: public; Owner: - --- - -ALTER TABLE ONLY public.spring_session_attributes - ADD CONSTRAINT spring_session_attributes_fk FOREIGN KEY (session_primary_id) REFERENCES public.spring_session(primary_id) ON DELETE CASCADE; diff --git a/backend/src/main/resources/db/migration/V2__drop_spring_session_tables.sql b/backend/src/main/resources/db/migration/V2__drop_spring_session_tables.sql new file mode 100644 index 00000000..77385968 --- /dev/null +++ b/backend/src/main/resources/db/migration/V2__drop_spring_session_tables.sql @@ -0,0 +1,9 @@ +-- Spring Session JDBC was included as a dependency but never used. +-- Authentication is stateless HTTP Basic Auth; sessions are never written. +-- These tables were created by V1 and are safe to remove. + +ALTER TABLE IF EXISTS public.spring_session_attributes + DROP CONSTRAINT IF EXISTS spring_session_attributes_fk; + +DROP TABLE IF EXISTS public.spring_session_attributes; +DROP TABLE IF EXISTS public.spring_session;