SI-141 Introduce Spring Security
diff --git a/gfsBackendService/src/main/asciidoc/img/architectureSIT.png b/gfsBackendService/src/main/asciidoc/img/architectureSIT.png
new file mode 100644
index 0000000..48a1d8c
--- /dev/null
+++ b/gfsBackendService/src/main/asciidoc/img/architectureSIT.png
Binary files differ
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/AuthNAuthApi.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/AuthNAuthApi.java
new file mode 100644
index 0000000..21467a4
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/api/AuthNAuthApi.java
@@ -0,0 +1,31 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+package org.eclipse.openk.gridfailureinformation.api;
+
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestHeader;
+
+@FeignClient(name = "${services.authNAuth.name}")
+public interface AuthNAuthApi {
+
+    @GetMapping(value= "/portal/rest/beservice/checkAuth")
+    feign.Response isTokenValid(@RequestHeader("Authorization") String token);
+
+    @GetMapping( value="/portal/rest/beservice/logout")
+    feign.Response logout(@RequestHeader("Authorization") String token);
+
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/CorsConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/CorsConfig.java
new file mode 100644
index 0000000..0294f69
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/CorsConfig.java
@@ -0,0 +1,32 @@
+package org.eclipse.openk.gridfailureinformation.config;
+
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Log4j2
+@Configuration
+public class CorsConfig {
+
+    @Value("${cors.corsEnabled}")
+    private boolean corsEnabled;
+
+    @Bean
+    public WebMvcConfigurer corsConfigurer() {
+        return new WebMvcConfigurer() {
+            @Override
+            public void addCorsMappings(CorsRegistry registry) {
+                if (corsEnabled) {
+                    log.info("Cors enabled");
+                    registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE").allowedOrigins("*")
+                            .allowedHeaders("*");
+                } else {
+                    log.info("Cors disabled");
+                }
+            }
+        };
+    }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SecurityConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SecurityConfig.java
index 46bca9e..bbb44e1 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SecurityConfig.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/SecurityConfig.java
@@ -14,17 +14,59 @@
  */
 package org.eclipse.openk.gridfailureinformation.config;
 
+import org.eclipse.openk.gridfailureinformation.config.auth.JwtAuthenticationEntryPoint;
+import org.eclipse.openk.gridfailureinformation.config.auth.JwtAuthenticationTokenFilter;
+import org.eclipse.openk.gridfailureinformation.config.auth.JwtTokenValidationFilter;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 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.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
 
 @Configuration
+@EnableWebSecurity
+@EnableGlobalMethodSecurity(
+        prePostEnabled = true,
+        securedEnabled = true,
+        jsr250Enabled = true)
 public class SecurityConfig extends WebSecurityConfigurerAdapter {
+
+    @Autowired
+    private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+
+    @Autowired
+    private JwtTokenValidationFilter jwtTokenValidationFilter;
+
+    @Autowired
+    private JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint;
+
     @Override
-    protected void configure(HttpSecurity security ) throws Exception {
-        security.httpBasic().disable();
-        security.csrf().disable();
+    protected void configure(HttpSecurity http ) throws Exception {
+        http
+                .authorizeRequests()
+                .antMatchers("/**").permitAll()
+                .anyRequest().authenticated()
+                .and()
+                .cors()
+                .and()
+                .exceptionHandling().authenticationEntryPoint(jwtAuthenticationEntryPoint)
+                .and()
+                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+                .and()
+                .csrf().disable()
+                .logout().disable()
+                .formLogin().disable()
+                .anonymous()
+                .and()
+                .addFilterAfter(jwtTokenValidationFilter, BasicAuthenticationFilter.class)
+                .anonymous()
+                .and()
+                .addFilterAfter(jwtAuthenticationTokenFilter, BasicAuthenticationFilter.class);
     }
 
+
 }
 
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtAuthenticationEntryPoint.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtAuthenticationEntryPoint.java
new file mode 100644
index 0000000..762535e
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtAuthenticationEntryPoint.java
@@ -0,0 +1,34 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+package org.eclipse.openk.gridfailureinformation.config.auth;
+
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.Serializable;
+
+@Component
+public class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint, Serializable {
+
+    @Override
+    public void commence(HttpServletRequest request, HttpServletResponse response,
+                         AuthenticationException authException) throws IOException {
+        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized");
+    }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtAuthenticationTokenFilter.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtAuthenticationTokenFilter.java
new file mode 100644
index 0000000..dfe086d
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtAuthenticationTokenFilter.java
@@ -0,0 +1,88 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.config.auth;
+
+import org.keycloak.RSATokenVerifier;
+import org.keycloak.representations.AccessToken;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
+
+    @Value("${jwt.useStaticJwt}")
+    private boolean useStaticJwt;
+
+    @Value("${jwt.tokenHeader}")
+    private String tokenHeader;
+
+    @Value("${jwt.staticJwt}")
+    private String staticJwt;
+
+    @Override
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
+        String authenticationHeader = useStaticJwt ? staticJwt : request.getHeader(this.tokenHeader);
+
+        try {
+            SecurityContext context= SecurityContextHolder.getContext();
+
+            if(authenticationHeader != null) {
+
+                final String bearerTkn= authenticationHeader.replace("Bearer ", "");
+
+                createToken(context, bearerTkn);
+
+            }
+            chain.doFilter(request, response);
+        } catch(AuthenticationException ex) {
+            throw new ServletException("Authentication exception.");
+        }
+
+    }
+
+    private void createToken(SecurityContext context, String bearerTkn) throws ServletException {
+        try {
+            AccessToken token = RSATokenVerifier.create(bearerTkn).getToken();
+
+            List<GrantedAuthority> authorities= new ArrayList<>();
+            token.getRealmAccess().getRoles().stream()
+                    .forEach( x -> authorities.add(new SimpleGrantedAuthority("ROLE_"+x.toUpperCase())));
+
+            UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(token.getName(), null, authorities);
+            auth.setDetails(bearerTkn);
+
+            context.setAuthentication(auth);
+
+        } catch (Exception e) {
+            throw new ServletException("Invalid token.");
+        }
+    }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtTokenValidationFilter.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtTokenValidationFilter.java
new file mode 100644
index 0000000..8256fac
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/auth/JwtTokenValidationFilter.java
@@ -0,0 +1,63 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+*/
+
+package org.eclipse.openk.gridfailureinformation.config.auth;
+
+import feign.Response;
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.gridfailureinformation.api.AuthNAuthApi;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
+import java.io.IOException;
+
+@Component
+@Log4j2
+public class JwtTokenValidationFilter extends OncePerRequestFilter {
+    @Autowired
+    private AuthNAuthApi authNAuthApi;
+
+    @Value("${jwt.useStaticJwt}")
+    private boolean useStaticJwt;
+
+    @Value("${jwt.tokenHeader}")
+    private String tokenHeader;
+
+    @Override
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
+        String authenticationHeader = useStaticJwt ? null : request.getHeader(this.tokenHeader);
+
+            if(authenticationHeader != null) {
+                final String bearerTkn= authenticationHeader.replace("Bearer ", "");
+                Response res = authNAuthApi.isTokenValid(bearerTkn);
+                if( res.status() != HttpStatus.OK.value() ) {
+                    final HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper((HttpServletResponse)response);
+                    wrapper.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Token expired or not valid");
+                    chain.doFilter(request, wrapper.getResponse());
+
+                    return;
+                }
+            }
+            chain.doFilter(request, response);
+    }
+}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/JwtToken.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/JwtToken.java
new file mode 100644
index 0000000..cd7e60b
--- /dev/null
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/model/JwtToken.java
@@ -0,0 +1,24 @@
+/**
+******************************************************************************
+* Copyright © 2017-2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* 
+*     http://www.eclipse.org/legal/epl-v10.html
+* 
+******************************************************************************
+*/
+package org.eclipse.openk.gridfailureinformation.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class JwtToken {
+
+    @JsonProperty("access_token")
+    private String accessToken;
+
+    public String getAccessToken() { return accessToken; }
+    public void setAccessToken(String accessToken) { this.accessToken = accessToken; }
+
+}
\ No newline at end of file
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/BranchControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/BranchControllerTest.java
index 9b4dbf8..34b1e09 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/BranchControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/BranchControllerTest.java
@@ -16,27 +16,27 @@
 
 import org.eclipse.openk.gridfailureinformation.GridFailureInformationApplication;
 import org.eclipse.openk.gridfailureinformation.service.BranchService;
-import org.eclipse.openk.gridfailureinformation.service.VersionService;
 import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
 import org.eclipse.openk.gridfailureinformation.viewmodel.BranchDto;
-import org.eclipse.openk.gridfailureinformation.viewmodel.VersionDto;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
 import java.util.List;
 
-import static org.hamcrest.Matchers.is;
 import static org.mockito.Mockito.when;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @SpringBootTest(classes = GridFailureInformationApplication.class)
 @AutoConfigureMockMvc
+@ActiveProfiles("test")
 public class BranchControllerTest {
 
     @MockBean
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureClassificationControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureClassificationControllerTest.java
index d3efe42..fdd71b2 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureClassificationControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureClassificationControllerTest.java
@@ -24,6 +24,7 @@
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
 import java.util.List;
@@ -35,6 +36,7 @@
 
 @SpringBootTest(classes = GridFailureInformationApplication.class)
 @AutoConfigureMockMvc
+@ActiveProfiles("test")
 public class FailureClassificationControllerTest {
 
     @MockBean
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
index 1ddbe29..ff7889d 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureInformationControllerTest.java
@@ -15,10 +15,8 @@
 package org.eclipse.openk.gridfailureinformation.controller;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import jdk.nashorn.internal.ir.annotations.Ignore;
 import org.eclipse.openk.gridfailureinformation.GridFailureInformationApplication;
 import org.eclipse.openk.gridfailureinformation.exceptions.NotFoundException;
-import org.eclipse.openk.gridfailureinformation.model.TblFailureInformation;
 import org.eclipse.openk.gridfailureinformation.service.FailureInformationService;
 import org.eclipse.openk.gridfailureinformation.support.MockDataHelper;
 import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
@@ -30,24 +28,20 @@
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
-import java.util.Date;
 import java.util.UUID;
 
 import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.not;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 @SpringBootTest(classes = GridFailureInformationApplication.class)
 @AutoConfigureMockMvc
+@ActiveProfiles("test")
 public class FailureInformationControllerTest {
 
     @MockBean
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureTypeControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureTypeControllerTest.java
index 8d6fa2d..78ff37d 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureTypeControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/FailureTypeControllerTest.java
@@ -24,6 +24,7 @@
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
 import java.util.List;
@@ -35,6 +36,7 @@
 
 @SpringBootTest(classes = GridFailureInformationApplication.class)
 @AutoConfigureMockMvc
+@ActiveProfiles("test")
 public class FailureTypeControllerTest {
 
     @MockBean
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/StatusControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/StatusControllerTest.java
index 05b8828..f21e371 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/StatusControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/StatusControllerTest.java
@@ -24,6 +24,7 @@
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
 import java.util.List;
@@ -35,6 +36,7 @@
 
 @SpringBootTest(classes = GridFailureInformationApplication.class)
 @AutoConfigureMockMvc
+@ActiveProfiles("test")
 public class StatusControllerTest {
 
     @MockBean
diff --git a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/VersionControllerTest.java b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/VersionControllerTest.java
index 4000ed2..69fc38e 100644
--- a/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/VersionControllerTest.java
+++ b/gfsBackendService/src/test/java/org/eclipse/openk/gridfailureinformation/controller/VersionControllerTest.java
@@ -27,6 +27,7 @@
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.web.servlet.MockMvc;
 
 import static org.hamcrest.Matchers.is;
@@ -36,6 +37,7 @@
 
 @SpringBootTest(classes = GridFailureInformationApplication.class)
 @AutoConfigureMockMvc
+@ActiveProfiles("test")
 public class VersionControllerTest {
 
     @MockBean