Added a `@RestController`
[demos/spring-boot] / src / main / java / de / juplo / demo / BackendVersionInterceptor.java
1 package de.juplo.demo;
2
3 import jakarta.servlet.http.HttpServletRequest;
4 import jakarta.servlet.http.HttpServletResponse;
5 import lombok.RequiredArgsConstructor;
6 import org.springframework.http.HttpStatus;
7 import org.springframework.web.servlet.HandlerInterceptor;
8
9 import java.io.IOException;
10
11
12 @RequiredArgsConstructor
13 public class BackendVersionInterceptor implements HandlerInterceptor
14 {
15   public final static String BACKEND_VERSION = "X-Backend-Version";
16
17
18   private final String backendVersion;
19
20
21   @Override
22   public boolean preHandle(
23       HttpServletRequest request,
24       HttpServletResponse response,
25       Object handler) throws IOException
26   {
27     String requstedVersion = request.getHeader(BACKEND_VERSION);
28     if (requstedVersion != null && !requstedVersion.equals(backendVersion))
29     {
30       response.sendError(HttpStatus.GONE.value());
31       return false;
32     }
33     else
34     {
35       return true;
36     }
37   }
38 }