diff --git a/src/main/java/de/w665/biblenotes/config/SecurityConfig.java b/src/main/java/de/w665/biblenotes/config/SecurityConfig.java index 7cc3618..2f809fc 100644 --- a/src/main/java/de/w665/biblenotes/config/SecurityConfig.java +++ b/src/main/java/de/w665/biblenotes/config/SecurityConfig.java @@ -39,13 +39,13 @@ public class SecurityConfig { http .csrf(csrf -> csrf - .ignoringRequestMatchers("/api/v1/**") + .ignoringRequestMatchers("/**") .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())) // Disable CSRF for API routes .sessionManagement(sessionManagement -> sessionManagement .sessionCreationPolicy(SessionCreationPolicy.STATELESS) // No session will be created by Spring Security ) .authorizeHttpRequests(authorize -> authorize - .requestMatchers("/api/v1/secure/**").authenticated() // Secure these endpoints + .requestMatchers("/secure/**").authenticated() // Secure these endpoints .anyRequest().permitAll() // All other requests are allowed without authentication ) .headers(headers -> headers diff --git a/src/main/java/de/w665/biblenotes/config/WebConfig.java b/src/main/java/de/w665/biblenotes/config/WebConfig.java new file mode 100644 index 0000000..e933eeb --- /dev/null +++ b/src/main/java/de/w665/biblenotes/config/WebConfig.java @@ -0,0 +1,14 @@ +package de.w665.biblenotes.config; + +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +public class WebConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + // Map static resources to the root path + registry.addResourceHandler("/**") + .addResourceLocations("classpath:/static/"); + } +} diff --git a/src/main/java/de/w665/biblenotes/rest/AuthenticationController.java b/src/main/java/de/w665/biblenotes/rest/AuthenticationController.java index c8801cf..3e251a6 100644 --- a/src/main/java/de/w665/biblenotes/rest/AuthenticationController.java +++ b/src/main/java/de/w665/biblenotes/rest/AuthenticationController.java @@ -16,7 +16,7 @@ import java.util.Map; @Slf4j @RestController -@RequestMapping("/api/v1/auth") +@RequestMapping("/auth") public class AuthenticationController { private final AuthenticationService authenticationService; diff --git a/src/main/java/de/w665/biblenotes/rest/mappings/BibleReadingPlanMapping.java b/src/main/java/de/w665/biblenotes/rest/mappings/BibleReadingPlanMapping.java index 8a2632f..2b85ae8 100644 --- a/src/main/java/de/w665/biblenotes/rest/mappings/BibleReadingPlanMapping.java +++ b/src/main/java/de/w665/biblenotes/rest/mappings/BibleReadingPlanMapping.java @@ -17,7 +17,8 @@ import org.springframework.web.bind.annotation.*; import java.util.Optional; @RestController -public class BibleReadingPlanMapping extends SecureApiRestController { +@RequestMapping("/secure/bible-reading-plan") +public class BibleReadingPlanMapping { private final EntityManager entityManager; private final BibleReadingPlanRepository bibleReadingPlanRepository; @@ -27,8 +28,8 @@ public class BibleReadingPlanMapping extends SecureApiRestController { this.bibleReadingPlanRepository = bibleReadingPlanRepository; } - @GetMapping("/bible-reading-plan") - public ResponseEntity getBibleReadingPlans(@RequestParam(required = true) Long id) { + @GetMapping + public ResponseEntity getBibleReadingPlans(@RequestParam(name = "id", required = true) Long id) { Optional brp = bibleReadingPlanRepository.findById(id); if(brp.isEmpty()) { return new ResponseEntity<>(HttpStatus.NOT_FOUND); @@ -44,7 +45,7 @@ public class BibleReadingPlanMapping extends SecureApiRestController { return new ResponseEntity<>(bibleReadingPlanDTO, HttpStatus.OK); } - @PostMapping("/bible-reading-plan") + @PostMapping public ResponseEntity createBibleReadingPlan(@RequestBody BibleReadingPlanDTO bibleReadingPlanDTO) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d3f9325..dc3a89c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -15,4 +15,7 @@ spring.jpa.database=postgresql logging.level.de.w665.biblenotes=DEBUG # Static path -spring.web.resources.static-locations=classpath:/static/ \ No newline at end of file +spring.web.resources.static-locations=classpath:/static/ + +# If this is removed, this prefix must be added to the security config +spring.mvc.servlet.path=/api/v1