From 5246ed5560c2124a43571c3a986df1498df92b92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=CE=A3lie=20*?= <44349276+tetelie@users.noreply.github.com>
Date: Sat, 28 Feb 2026 14:11:43 +0100
Subject: [PATCH] add security
---
pom.xml | 4 +++
.../fr/tetelie/crawler/SecurityConfig.java | 29 +++++++++++++++++++
src/main/resources/application.properties | 4 ++-
src/main/resources/templates/index.html | 1 +
4 files changed, 37 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/fr/tetelie/crawler/SecurityConfig.java
diff --git a/pom.xml b/pom.xml
index fc72458..357f949 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,10 @@
dotenv-java
3.0.0
+
+ org.springframework.boot
+ spring-boot-starter-security
+
diff --git a/src/main/java/fr/tetelie/crawler/SecurityConfig.java b/src/main/java/fr/tetelie/crawler/SecurityConfig.java
new file mode 100644
index 0000000..7f73f6c
--- /dev/null
+++ b/src/main/java/fr/tetelie/crawler/SecurityConfig.java
@@ -0,0 +1,29 @@
+package fr.tetelie.crawler;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.web.SecurityFilterChain;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig {
+
+ @Bean
+ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
+ http
+ .authorizeHttpRequests((requests) -> requests
+ .requestMatchers("/", "/api/**", "/css/**", "/js/**").permitAll() // Tout le monde voit le dashboard
+ .requestMatchers("/add", "/delete/**").authenticated() // Seul l'admin ajoute/supprime
+ .anyRequest().authenticated()
+ )
+ .formLogin((form) -> form
+ .defaultSuccessUrl("/", true)
+ .permitAll()
+ )
+ .logout((logout) -> logout.permitAll());
+
+ return http.build();
+ }
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 15a4abf..aebef8d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -2,4 +2,6 @@ spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASS}
spring.jpa.hibernate.ddl-auto=validate
-server.port=8083
\ No newline at end of file
+server.port=8083
+spring.security.user.name=admin
+spring.security.user.password=${ADMIN_PASS}
\ No newline at end of file
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index a004d48..1100fb4 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -28,6 +28,7 @@