diff --git a/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlConfiguration.java b/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlConfiguration.java
index 50354cd7132d242953d9b1d308a1fdb19fc84452..0cad2348097b0ab6ddd787b9f232bd7a18d44db6 100644
--- a/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlConfiguration.java
+++ b/token-checker-server/src/main/java/de/ozgcloud/token/saml/SamlConfiguration.java
@@ -16,6 +16,7 @@ import org.opensaml.security.credential.criteria.impl.EvaluableUsageCredentialCr
 import org.opensaml.security.criteria.UsageCriterion;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
 
 import de.ozgcloud.token.TokenValidationProperties;
 import de.ozgcloud.token.TokenValidationProperties.TokenValidationProperty;
@@ -35,6 +36,7 @@ public class SamlConfiguration {
 	}
 
 	@Bean
+	@DependsOn("xmlObjectProviderRegistry")
 	SamlServiceRegistry samServiceRegistry(TokenValidationProperties tokenValidationProperties) {
 		var registryBuilder = SamlServiceRegistry.builder();
 		for (var tokenEntity : tokenValidationProperties.getEntities()) {
diff --git a/token-checker-server/src/main/resources/application-local.yml b/token-checker-server/src/main/resources/application-local.yml
index 0f9eaeba57f44763a40dbc070c3b3cc7e77fdc51..d601973b2998caf553a9041db64203c0ce880256 100644
--- a/token-checker-server/src/main/resources/application-local.yml
+++ b/token-checker-server/src/main/resources/application-local.yml
@@ -1,8 +1,10 @@
 logging:
   level:
-    "net.devh.boot.grpc": INFO
+    ROOT: ERROR,
+    "org.springframework": ERROR
     "org.opensaml.xmlsec.encryption.support": DEBUG
-  config: "token-checker-server/src/main/resources/log4j2-local.xml"
+    "de.ozgcloud": INFO
+  config: classpath:log4j2-local.xml
 ozgcloud:
   token:
     check:
diff --git a/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java b/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..c2c24b47fa6061b16a8157cc03190303dc1a0d3b
--- /dev/null
+++ b/token-checker-server/src/test/java/de/ozgcloud/token/TokenCheckGrpcServiceITCase.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.token;
+
+import static org.assertj.core.api.Assertions.*;
+
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Import;
+
+import de.ozgcloud.common.test.ITCase;
+import de.ozgcloud.common.test.TestUtils;
+import de.ozgcloud.token.saml.SamlTrustEngineFactoryTestConfiguration;
+import net.devh.boot.grpc.client.inject.GrpcClient;
+
+@ITCase
+@SpringBootTest(properties = {
+		"grpc.server.inProcessName=test",
+		"grpc.client.token-checker.address=in-process:test",
+})
+@Import(SamlTrustEngineFactoryTestConfiguration.class)
+public class TokenCheckGrpcServiceITCase {
+
+	@GrpcClient("token-checker")
+	private TokenCheckServiceGrpc.TokenCheckServiceBlockingStub tokenCheckerStub;
+
+	@Nested
+	class TestCheckToken {
+
+		private static final String POSTFACH_ID = "28721c6f-b78f-4d5c-a048-19fd2fc429d2";
+		private static final String TRUST_LEVEL = "STORK-QAA-Level-1";
+
+		@Test
+		void shouldAcceptToken() {
+			var token = TestUtils.loadTextFile("SamlResponseBayernId.xml");
+
+			var result = tokenCheckerStub.checkToken(buildCheckTokenRequest(token));
+
+			assertThat(result.getTokenValid()).isTrue();
+		}
+
+		@Test
+		void shouldSetClientAttribute() {
+			var token = TestUtils.loadTextFile("SamlResponseBayernId.xml");
+
+			var result = tokenCheckerStub.checkToken(buildCheckTokenRequest(token));
+
+			assertThat(result.getTokenAttributes().getPostfachId()).isEqualTo(POSTFACH_ID);
+			assertThat(result.getTokenAttributes().getTrustLevel()).isEqualTo(TRUST_LEVEL);
+			assertThat(getOtherFields(result)).isNotEmpty().doesNotContainKeys(TokenAttribute.POSTFACH_ID_KEY, TokenAttribute.TRUST_LEVEL_KEY);
+		}
+
+		private GrpcCheckTokenRequest buildCheckTokenRequest(String token) {
+			return GrpcCheckTokenRequest.newBuilder().setToken(token).build();
+		}
+
+		private Map<String, String> getOtherFields(GrpcCheckTokenResponse result) {
+			return result.getTokenAttributes().getOtherFieldsList().stream()
+					.collect(Collectors.toMap(GrpcOtherField::getName, GrpcOtherField::getValue));
+		}
+	}
+}
diff --git a/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTrustEngineFactoryTestConfiguration.java b/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTrustEngineFactoryTestConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..c018ca4195a0a113afd6e5cfee43c2f02e07a94d
--- /dev/null
+++ b/token-checker-server/src/test/java/de/ozgcloud/token/saml/SamlTrustEngineFactoryTestConfiguration.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.token.saml;
+
+import static org.mockito.Mockito.*;
+
+import org.opensaml.xmlsec.signature.support.SignatureTrustEngine;
+import org.springframework.context.annotation.Bean;
+
+import lombok.SneakyThrows;
+
+public class SamlTrustEngineFactoryTestConfiguration {
+
+	@SneakyThrows
+	@Bean
+	SamlTrustEngineFactory samlTrustEngineFactory() {
+		SignatureTrustEngine signatureTrustEngine = mock(SignatureTrustEngine.class);
+		when(signatureTrustEngine.validate(any(), any())).thenReturn(true);
+		return when(mock(SamlTrustEngineFactory.class).buildSamlTrustEngine(any())).thenReturn(signatureTrustEngine).getMock();
+	}
+
+}
diff --git a/token-checker-server/src/test/resources/application-itcase.yml b/token-checker-server/src/test/resources/application-itcase.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1c0f3971dfa214cd541b3bf13c9d2ba5f5b2cc17
--- /dev/null
+++ b/token-checker-server/src/test/resources/application-itcase.yml
@@ -0,0 +1,20 @@
+logging:
+  level:
+    ROOT: ERROR,
+    "org.springframework": ERROR
+    "org.opensaml.xmlsec.encryption.support": DEBUG
+    "de.ozgcloud": INFO
+  config: classpath:log4j2-local.xml
+ozgcloud:
+  token:
+    check:
+      entities:
+        - idpEntityId: "https://infra-pre-id.bayernportal.de/idp"
+          key: "classpath:test1-enc.key"
+          certificate: "classpath:test1-enc.crt"
+          metadata: "classpath:metadata/bayernid-idp-infra.xml"
+          mappings:
+            postfachId: "urn:oid:2.5.4.18"
+            trustLevel: "urn:oid:1.2.40.0.10.2.1.1.261.94"
+server:
+  port: -1
\ No newline at end of file