refactor: remove unused Spring Session JDBC dependency and tables

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 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-03-15 12:32:38 +01:00
parent e89dd5dc3c
commit 35b998a0e8
3 changed files with 9 additions and 78 deletions

View File

@@ -50,10 +50,6 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-session-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
@@ -98,11 +94,6 @@
<artifactId>spring-boot-starter-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-session-jdbc-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc-test</artifactId>

View File

@@ -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;

View File

@@ -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;