diff --git a/build.gradle b/build.gradle index 2fe3242..e499611 100644 --- a/build.gradle +++ b/build.gradle @@ -36,3 +36,7 @@ dependencies { tasks.named('test') { useJUnitPlatform() } + +springBoot { + buildInfo() +} diff --git a/src/main/java/fr/bonsai/api/adapter/in/web/VersionController.java b/src/main/java/fr/bonsai/api/adapter/in/web/VersionController.java new file mode 100644 index 0000000..2b4ceab --- /dev/null +++ b/src/main/java/fr/bonsai/api/adapter/in/web/VersionController.java @@ -0,0 +1,24 @@ +package fr.bonsai.api.adapter.in.web; + +import org.springframework.boot.info.BuildProperties; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/version") +public class VersionController { + + private final BuildProperties buildProperties; + + public VersionController(BuildProperties buildProperties) { + this.buildProperties = buildProperties; + } + + @GetMapping + public VersionResponse get() { + return new VersionResponse(buildProperties.getVersion()); + } + + public record VersionResponse(String version) {} +} diff --git a/src/main/java/fr/bonsai/api/config/SecurityConfig.java b/src/main/java/fr/bonsai/api/config/SecurityConfig.java index 0221ad3..f0d5525 100644 --- a/src/main/java/fr/bonsai/api/config/SecurityConfig.java +++ b/src/main/java/fr/bonsai/api/config/SecurityConfig.java @@ -22,6 +22,7 @@ public class SecurityConfig { session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .authorizeHttpRequests(auth -> auth .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() + .requestMatchers(HttpMethod.GET, "/version").permitAll() .anyRequest().authenticated() ) .oauth2ResourceServer(oauth2 -> oauth2