From 89aa262830dd1db6c3888ba5a05de6c0928b1f63 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Tue, 11 Feb 2025 13:32:36 +0100 Subject: [PATCH] TD-3: Player Test Data and CSRF Fix --- .../towerdefence/server/auth/AuthConfig.java | 4 +-- .../de/towerdefence/server/player/Player.java | 1 + .../server/player/PlayerTestData.java | 32 +++++++++++++++++++ src/main/resources/application.properties | 1 + 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/main/java/de/towerdefence/server/player/PlayerTestData.java diff --git a/src/main/java/de/towerdefence/server/auth/AuthConfig.java b/src/main/java/de/towerdefence/server/auth/AuthConfig.java index 8bf7f7f..a3c920f 100644 --- a/src/main/java/de/towerdefence/server/auth/AuthConfig.java +++ b/src/main/java/de/towerdefence/server/auth/AuthConfig.java @@ -2,10 +2,10 @@ package de.towerdefence.server.auth; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.core.session.SessionRegistry; import org.springframework.security.core.session.SessionRegistryImpl; import org.springframework.security.web.SecurityFilterChain; @@ -45,7 +45,7 @@ public class AuthConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { return http - .csrf(Customizer.withDefaults()) + .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(auth -> auth .requestMatchers("/api/" + API_VERSION + "/admin/**") .authenticated() diff --git a/src/main/java/de/towerdefence/server/player/Player.java b/src/main/java/de/towerdefence/server/player/Player.java index 79a7fd3..1d84ec9 100644 --- a/src/main/java/de/towerdefence/server/player/Player.java +++ b/src/main/java/de/towerdefence/server/player/Player.java @@ -19,6 +19,7 @@ public class Player { public static final int PASSWORD_HASH_BYTE_LENGTH = 64; @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @NotNull diff --git a/src/main/java/de/towerdefence/server/player/PlayerTestData.java b/src/main/java/de/towerdefence/server/player/PlayerTestData.java new file mode 100644 index 0000000..b7db6ac --- /dev/null +++ b/src/main/java/de/towerdefence/server/player/PlayerTestData.java @@ -0,0 +1,32 @@ +package de.towerdefence.server.player; + +import jakarta.annotation.PostConstruct; +import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; + +import java.security.NoSuchAlgorithmException; + +@AllArgsConstructor +@Configuration +@Profile("dev") +public class PlayerTestData { + @Autowired + private PlayerRepository playerRepository; + @Autowired + private PlayerService playerService; + + @PostConstruct + public void loadFixtures() throws NoSuchAlgorithmException { + Player player1 = new Player(); + player1.setUsername("Player1"); + playerService.setPassword(player1, "1234"); + this.playerRepository.save(player1); + + Player player2 = new Player(); + player2.setUsername("Player2"); + playerService.setPassword(player2, "1234"); + this.playerRepository.save(player2); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 88e9b20..eb3a310 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,5 @@ # General +spring.profiles.active=dev spring.application.name=Tower Defence Server server.port=8080