From 29f26a8a1838ab5e83e87f75728ea246e4e55f99 Mon Sep 17 00:00:00 2001 From: Cedric Hornberger Date: Tue, 12 May 2026 23:08:37 +0200 Subject: [PATCH] feat: add /api/version endpoint returning build time and version --- pom.xml | 7 +++++++ .../controller/HomeController.java | 17 +++++++++++++++++ .../security/SecurityConfig.java | 1 + 3 files changed, 25 insertions(+) diff --git a/pom.xml b/pom.xml index 357a67e..45528c4 100644 --- a/pom.xml +++ b/pom.xml @@ -128,6 +128,13 @@ + + + + build-info + + + diff --git a/src/main/java/de/zendric/app/xpensely_server/controller/HomeController.java b/src/main/java/de/zendric/app/xpensely_server/controller/HomeController.java index 12a8948..842d575 100644 --- a/src/main/java/de/zendric/app/xpensely_server/controller/HomeController.java +++ b/src/main/java/de/zendric/app/xpensely_server/controller/HomeController.java @@ -1,13 +1,30 @@ package de.zendric.app.xpensely_server.controller; +import org.springframework.boot.info.BuildProperties; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + @RestController class HomeController { + private final BuildProperties buildProperties; + + HomeController(BuildProperties buildProperties) { + this.buildProperties = buildProperties; + } + @GetMapping("/") public String getAll() { return "Welcome"; } + + @GetMapping("/api/version") + public Map version() { + return Map.of( + "version", buildProperties.getVersion(), + "builtAt", buildProperties.getTime().toString() + ); + } } \ No newline at end of file diff --git a/src/main/java/de/zendric/app/xpensely_server/security/SecurityConfig.java b/src/main/java/de/zendric/app/xpensely_server/security/SecurityConfig.java index 19a8a19..2b85f99 100644 --- a/src/main/java/de/zendric/app/xpensely_server/security/SecurityConfig.java +++ b/src/main/java/de/zendric/app/xpensely_server/security/SecurityConfig.java @@ -28,6 +28,7 @@ public class SecurityConfig { public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth + .requestMatchers("/api/version").permitAll() .anyRequest().authenticated()) .oauth2ResourceServer(oauth2 -> oauth2 .jwt(Customizer.withDefaults()))