From 598c3aad9efa2c29924e42758d3fb006e78555ed Mon Sep 17 00:00:00 2001
From: "Zickermann, Jan" <jan.zickermann@dataport.de>
Date: Tue, 26 Mar 2024 15:28:36 +0100
Subject: [PATCH] OZG-5176 OZG-5278 Use `@WithJwt` in security integration test

---
 .../security/SecurityConfigurationITCase.java | 15 ++++++++---
 src/test/resources/application-itcase.yaml    |  8 +++++-
 src/test/resources/application.yaml           | 25 -------------------
 3 files changed, 18 insertions(+), 30 deletions(-)
 delete mode 100644 src/test/resources/application.yaml

diff --git a/src/test/java/de/ozgcloud/admin/security/SecurityConfigurationITCase.java b/src/test/java/de/ozgcloud/admin/security/SecurityConfigurationITCase.java
index bbd28b4b..711a2d88 100644
--- a/src/test/java/de/ozgcloud/admin/security/SecurityConfigurationITCase.java
+++ b/src/test/java/de/ozgcloud/admin/security/SecurityConfigurationITCase.java
@@ -33,11 +33,9 @@ import org.junit.jupiter.params.provider.ValueSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
 import org.springframework.http.HttpStatus;
-import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.ResultActions;
 
-import de.ozgcloud.admin.common.user.UserRole;
 import de.ozgcloud.common.test.DataITCase;
 import lombok.SneakyThrows;
 
@@ -179,9 +177,18 @@ class SecurityConfigurationITCase {
 	@DisplayName("with admin role")
 	@Nested
 	class TestWithAdminRole {
+
+		static final String CLAIMS = """
+				{
+				  "preferredUsername": "testUser",
+				  "scope": "openid testscope",
+				  "resource_access": { "admin": { "roles": ["ADMIN_ADMIN"] } }
+				}""";
+
+
 		@Test
 		@SneakyThrows
-		@WithMockUser(roles = UserRole.ADMIN_USER)
+		@WithJwt(CLAIMS)
 		void shouldAllowSettings() {
 			var result = mockMvc.perform(get("/api/configuration/settings"));
 
@@ -190,7 +197,7 @@ class SecurityConfigurationITCase {
 
 		@Test
 		@SneakyThrows
-		@WithMockUser(roles = UserRole.ADMIN_USER)
+		@WithJwt(CLAIMS)
 		void shouldAllowConfiguration() {
 			var result = mockMvc.perform(get("/api/configuration"));
 
diff --git a/src/test/resources/application-itcase.yaml b/src/test/resources/application-itcase.yaml
index fc717c37..3082babc 100644
--- a/src/test/resources/application-itcase.yaml
+++ b/src/test/resources/application-itcase.yaml
@@ -1,2 +1,8 @@
 mongock:
-  enabled: false
\ No newline at end of file
+  enabled: false
+
+ozgcloud:
+  oauth2:
+    auth-server-url: https://sso.it-case.de
+    realm: by-kiel-dev
+    resource: admin
diff --git a/src/test/resources/application.yaml b/src/test/resources/application.yaml
deleted file mode 100644
index bfdb349d..00000000
--- a/src/test/resources/application.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-management:
-  server:
-    port: 8081
-spring:
-  application:
-    name: OzgCloud_Administration
-  data:
-    mongodb:
-      authentication-database: admin
-    rest:
-      basePath: /api/configuration
-  cloud:
-    config:
-      server:
-        prefix: /configserver
-  security:
-    oauth2:
-      resourceserver:
-        jwt:
-          issuer-uri: ${ozgcloud.oauth2.auth-server-url}/realms/${ozgcloud.oauth2.realm}
-ozgcloud:
-  oauth2:
-    auth-server-url: https://sso.dev.by.ozg-cloud.de
-    realm: by-kiel-dev
\ No newline at end of file
-- 
GitLab