diff --git a/.gitignore b/.gitignore
index 14fa51a730e6ca3c26ac75cf6d1b35d0bef8187b..09127ca386abb011a63d31df83aca28ae68bc207 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,7 @@ bin/
 .sts4-cache
 
 ### IntelliJ IDEA ###
+.idea
 *.iws
 *.iml
 *.ipr
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index b4208d1f50f3d62744b4eb594d81fb029e332ed4..0000000000000000000000000000000000000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
-/sonarlint/
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index c7b7b708dab82c08c005e3bdd77c6b202f9676d5..0000000000000000000000000000000000000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<component name="ProjectCodeStyleConfiguration">
-  <code_scheme name="Project" version="173">
-    <JavaCodeStyleSettings>
-      <option name="GENERATE_FINAL_PARAMETERS" value="true" />
-      <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
-      <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="1" />
-      <option name="IMPORT_LAYOUT_TABLE">
-        <value>
-          <package name="" withSubpackages="true" static="true" />
-          <emptyLine />
-          <package name="java" withSubpackages="true" static="false" />
-          <emptyLine />
-          <package name="jakarta" withSubpackages="true" static="false" />
-          <package name="javax" withSubpackages="true" static="false" />
-          <emptyLine />
-          <package name="org" withSubpackages="true" static="false" />
-          <emptyLine />
-          <package name="com" withSubpackages="true" static="false" />
-          <emptyLine />
-          <package name="" withSubpackages="true" static="false" />
-        </value>
-      </option>
-      <option name="ALIGN_MULTILINE_RECORDS" value="false" />
-      <option name="ALIGN_TYPES_IN_MULTI_CATCH" value="false" />
-      <option name="JD_P_AT_EMPTY_LINES" value="false" />
-      <option name="JD_DO_NOT_WRAP_ONE_LINE_COMMENTS" value="true" />
-    </JavaCodeStyleSettings>
-    <JetCodeStyleSettings>
-      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
-    </JetCodeStyleSettings>
-    <codeStyleSettings language="JAVA">
-      <option name="RIGHT_MARGIN" value="150" />
-      <option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
-      <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
-      <option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="1" />
-      <option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
-      <option name="KEEP_BLANK_LINES_BETWEEN_PACKAGE_DECLARATION_AND_HEADER" value="1" />
-      <option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
-      <option name="INDENT_CASE_FROM_SWITCH" value="false" />
-      <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
-      <option name="ALIGN_MULTILINE_RESOURCES" value="false" />
-      <option name="ALIGN_MULTILINE_FOR" value="false" />
-      <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
-      <option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
-      <option name="CALL_PARAMETERS_WRAP" value="1" />
-      <option name="METHOD_PARAMETERS_WRAP" value="1" />
-      <option name="RESOURCE_LIST_WRAP" value="5" />
-      <option name="EXTENDS_LIST_WRAP" value="1" />
-      <option name="THROWS_LIST_WRAP" value="1" />
-      <option name="EXTENDS_KEYWORD_WRAP" value="1" />
-      <option name="THROWS_KEYWORD_WRAP" value="1" />
-      <option name="METHOD_CALL_CHAIN_WRAP" value="1" />
-      <option name="BINARY_OPERATION_WRAP" value="1" />
-      <option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
-      <option name="TERNARY_OPERATION_WRAP" value="5" />
-      <option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
-      <option name="ARRAY_INITIALIZER_WRAP" value="1" />
-      <option name="WRAP_COMMENTS" value="true" />
-      <option name="ASSERT_STATEMENT_COLON_ON_NEXT_LINE" value="true" />
-      <option name="ENUM_CONSTANTS_WRAP" value="1" />
-      <indentOptions>
-        <option name="CONTINUATION_INDENT_SIZE" value="2" />
-        <option name="USE_TAB_CHARACTER" value="true" />
-      </indentOptions>
-    </codeStyleSettings>
-    <codeStyleSettings language="XML">
-      <indentOptions>
-        <option name="USE_TAB_CHARACTER" value="true" />
-      </indentOptions>
-    </codeStyleSettings>
-    <codeStyleSettings language="kotlin">
-      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
-    </codeStyleSettings>
-  </code_scheme>
-</component>
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123c2b23e069e35ed634d687e17f731cc702..0000000000000000000000000000000000000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<component name="ProjectCodeStyleConfiguration">
-  <state>
-    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
-  </state>
-</component>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index a0654ae09e17f0f5fff33dc7aff32511e7628ad8..0000000000000000000000000000000000000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="true" />
-      <profile name="Gradle Imported" enabled="true">
-        <outputRelativeToContentRoot value="true" />
-        <processorPath useClasspath="false">
-          <entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.30/f195ee86e6c896ea47a1d39defbe20eb59cd149d/lombok-1.18.30.jar" />
-        </processorPath>
-      </profile>
-      <profile name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-      </profile>
-      <profile name="Annotation profile for OZG-Cloud Antragsraum" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-        <processorPath useClasspath="false">
-          <entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.6.0/mapstruct-processor-1.6.0.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.6.0/mapstruct-1.6.0.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct-processor/1.6.0/mapstruct-processor-1.6.0.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/mapstruct/mapstruct/1.6.0/mapstruct-1.6.0.jar" />
-        </processorPath>
-        <module name="antragsraum-server" />
-      </profile>
-    </annotationProcessing>
-    <bytecodeTargetLevel target="21" />
-  </component>
-  <component name="JavacSettings">
-    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
-      <module name="antragsraum-server" options="-parameters -Amapstruct.defaultComponentModel=spring -Amapstruct.unmappedTargetPolicy=WARN" />
-    </option>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/copyright/Eupl1_2.xml b/.idea/copyright/Eupl1_2.xml
deleted file mode 100644
index 8b51bb2301fbdd90e6ee5801f4f7713a2a0dac5a..0000000000000000000000000000000000000000
--- a/.idea/copyright/Eupl1_2.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<component name="CopyrightManager">
-  <copyright>
-    <option name="notice" value="Copyright (c) &amp;#36;originalComment.match(&quot;Copyright \(c\) (\d+)&quot;, 1, &quot;-&quot;, &quot;&amp;#36;today.year&quot;)&amp;#36;today.year.   Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten&#10;des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung.&#10;&#10;Lizenziert unter der EUPL, Version 1.2 oder - sobald&#10;diese von der Europäischen Kommission genehmigt wurden -&#10;Folgeversionen der EUPL (&quot;Lizenz&quot;);&#10;Sie dürfen dieses Werk ausschließlich gemäß&#10;dieser Lizenz nutzen.&#10;Eine Kopie der Lizenz finden Sie hier:&#10;&#10;https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12&#10;&#10;Sofern nicht durch anwendbare Rechtsvorschriften&#10;gefordert oder in schriftlicher Form vereinbart, wird&#10;die unter der Lizenz verbreitete Software &quot;so wie sie&#10;ist&quot;, OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -&#10;ausdrücklich oder stillschweigend - verbreitet.&#10;Die sprachspezifischen Genehmigungen und Beschränkungen&#10;unter der Lizenz sind dem Lizenztext zu entnehmen. " />
-    <option name="myName" value="Eupl1.2" />
-  </copyright>
-</component>
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index 4c8996918f5c5ce3236fb74f10a56f1ba8bf84fa..0000000000000000000000000000000000000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<component name="CopyrightManager">
-  <settings>
-    <module2copyright>
-      <element module="Project Files" copyright="Eupl1.2" />
-    </module2copyright>
-  </settings>
-</component>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 0dabbbf7bffc5e2c9d4af51b7ab52fb15673d093..0000000000000000000000000000000000000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
-    <file url="file://$PROJECT_DIR$/server/src/main/java" charset="UTF-8" />
-    <file url="file://$PROJECT_DIR$/server/target/generated-sources/openapi" charset="UTF-8" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 3e3960b71eaef30230fcaeef29ebc18216501448..0000000000000000000000000000000000000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="GradleMigrationSettings" migrationVersion="1" />
-</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 2f42e537a699dc92219bd00691e0e37d4200b562..0000000000000000000000000000000000000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="shibboleth" />
-      <option name="name" value="Shibboleth Maven Repo" />
-      <option name="url" value="https://build.shibboleth.net/nexus/content/repositories/releases" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="shibboleth-releases" />
-      <option name="name" value="Shibboleth Releases Repository" />
-      <option name="url" value="https://build.shibboleth.net/maven/releases/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central" />
-      <option name="url" value="https://repo1.maven.org/maven2/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="nexus" />
-      <option name="name" value="Ozg nexus" />
-      <option name="url" value="https://nexus.ozg-sh.de/repository/ozg-ozg-releases" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="maven" />
-      <option name="name" value="maven" />
-      <option name="url" value="https://artifacts.mgm-tp.com/artifactory/maven-repos" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="maven2" />
-      <option name="name" value="maven2" />
-      <option name="url" value="https://build.shibboleth.net/nexus/content/repositories/releases/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="MavenRepo" />
-      <option name="name" value="MavenRepo" />
-      <option name="url" value="https://repo.maven.apache.org/maven2/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="project-repository" />
-      <option name="name" value="project-repository" />
-      <option name="url" value="file://$PROJECT_DIR$/server/tmpRepo" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jboss.community" />
-      <option name="name" value="JBoss Community repository" />
-      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="ozg-snapshots-nexus" />
-      <option name="name" value="ozg-snapshots" />
-      <option name="url" value="https://nexus.ozg-sh.de/repository/ozg-snapshots/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="local-repo" />
-      <option name="name" value="local-repo" />
-      <option name="url" value="file://$PROJECT_DIR$/server/lib" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="ozg-nexus" />
-      <option name="name" value="ozg-releases" />
-      <option name="url" value="https://nexus.ozg-sh.de/repository/ozg-releases/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="shibboleth-thirdparty" />
-      <option name="name" value="Shibboleth Thirdparty Repository" />
-      <option name="url" value="https://build.shibboleth.net/maven/thirdparty/" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="nexus" />
-      <option name="name" value="Ozg nexus" />
-      <option name="url" value="https://nexus.ozg-sh.de/repository/ozg-releases" />
-    </remote-repository>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 290d6c7b10d9725454ff8e20c97a70786d11f5eb..0000000000000000000000000000000000000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="FrameworkDetectionExcludesConfiguration">
-    <file type="web" url="file://$PROJECT_DIR$" />
-  </component>
-  <component name="MavenProjectsManager">
-    <option name="originalFiles">
-      <list>
-        <option value="$PROJECT_DIR$/pom.xml" />
-      </list>
-    </option>
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK" />
-</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index b8776654896d4d1276d75b8ea0891a1231fab966..0000000000000000000000000000000000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum.integrationTest.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum.integrationTest.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum.main.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum.main.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.integrationTest.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.integrationTest.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.main.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.main.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.test.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum-server/ozg-antragsraum.ozg-antragsraum-server.test.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/keycloak/ozg-antragsraum.ozg-keycloak.iml" filepath="$PROJECT_DIR$/.idea/modules/keycloak/ozg-antragsraum.ozg-keycloak.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/modules/ozg-antragsraum.test.iml" filepath="$PROJECT_DIR$/.idea/modules/ozg-antragsraum.test.iml" />
-    </modules>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/sonarlint.xml b/.idea/sonarlint.xml
deleted file mode 100644
index 0e83d2e68b218e8d268a339d9812aec0b616780e..0000000000000000000000000000000000000000
--- a/.idea/sonarlint.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="SonarLintProjectSettings">
-    <option name="bindingEnabled" value="true" />
-    <option name="projectKey" value="de.ozgcloud:antragsraum" />
-    <option name="serverId" value="ozg-cloud" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946d5b31084bbb7dda418ceb3d75eb686373..0000000000000000000000000000000000000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Palette2">
-    <group name="Swing">
-      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
-      </item>
-      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
-        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
-        <initial-values>
-          <property name="text" value="Button" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="RadioButton" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="CheckBox" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
-        <initial-values>
-          <property name="text" value="Label" />
-        </initial-values>
-      </item>
-      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
-          <preferred-size width="150" height="-1" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
-          <preferred-size width="150" height="50" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
-          <preferred-size width="200" height="200" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
-      </item>
-      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
-      </item>
-      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
-          <preferred-size width="-1" height="20" />
-        </default-constraints>
-      </item>
-      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
-        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
-      </item>
-      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
-        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
-      </item>
-    </group>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1ddfbbc029bcab630581847471d7f238ec53..0000000000000000000000000000000000000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/AntragsRaumApplication.java b/server/src/main/java/de/ozgcloud/antragsraum/AntragsRaumApplication.java
index d8ff86da4ecf385df4be32a08c1849600056d916..6a3c79bc2ce622697eaf11da6ee6efcb4b933644 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/AntragsRaumApplication.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/AntragsRaumApplication.java
@@ -40,6 +40,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 @EnableScheduling
 @EnableAspectJAutoProxy(proxyTargetClass = true)
 public class AntragsRaumApplication {
+
 	public static void main(String[] args) {
 		SpringApplication.run(AntragsRaumApplication.class, args);
 	}
@@ -54,4 +55,5 @@ public class AntragsRaumApplication {
 		return customizer -> customizer.setTaskDecorator(DelegatingSecurityContextRunnable::new);
 
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/OpenApiConfiguration.java b/server/src/main/java/de/ozgcloud/antragsraum/OpenApiConfiguration.java
index db6792078563c84453afc413d8bc05be8dafb53d..5d680cd7700bca22cee22b6f97bc98117f21777e 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/OpenApiConfiguration.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/OpenApiConfiguration.java
@@ -22,15 +22,17 @@
 
 package de.ozgcloud.antragsraum;
 
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+
 import io.swagger.v3.oas.annotations.OpenAPIDefinition;
 import io.swagger.v3.oas.annotations.enums.SecuritySchemeType;
 import io.swagger.v3.oas.annotations.info.Info;
 import io.swagger.v3.oas.annotations.security.SecurityScheme;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 
 @OpenAPIDefinition(info = @Info(title = "Antragsraum",
-        description = "Backend for loading messages from the OZG-Cloud backend, sending replies and uploading files", version = "v1"))
+  description = "Backend for loading messages from the OZG-Cloud backend, sending replies and uploading files", version = "v1"))
 @SecurityScheme(name = "security_auth", type = SecuritySchemeType.HTTP, bearerFormat = "JWT", scheme = "bearer")
 @ConditionalOnProperty(name = "ozgcloud.mock.auth")
 public class OpenApiConfiguration {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/Root.java b/server/src/main/java/de/ozgcloud/antragsraum/Root.java
index 0ccab0061e9408b70ef24aef63e4e2c716c74f85..181bc6aedbab9245aa91ae8df4cf319b9818b900 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/Root.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/Root.java
@@ -20,12 +20,20 @@
 
 package de.ozgcloud.antragsraum;
 
+import java.time.Instant;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
-import lombok.Builder;
 
-import java.time.Instant;
+import lombok.Builder;
 
 @Builder
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public record Root(String version, Instant buildTime, String javaVersion, String name, boolean isProduction) {
+public record Root(
+  String version,
+  Instant buildTime,
+  String javaVersion,
+  String name,
+  boolean isProduction
+) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/RootController.java b/server/src/main/java/de/ozgcloud/antragsraum/RootController.java
index 0b0ddff8e6512b46f8ce8142d886d925efafe3ff..92742853f72a2927f908d8b21d29c13d2b39317e 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/RootController.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/RootController.java
@@ -33,7 +33,9 @@ import lombok.RequiredArgsConstructor;
 @RestController(RootController.PATH)
 @RequiredArgsConstructor
 public class RootController {
-	static final String PATH = "/";
+
+	static final String PATH = "/"; // NOSONAR
+	private static final String JAVA_VERSION_PROPERTY_NAME = "java.version";
 
 	private final BuildProperties buildProperties;
 	@Value("${ozgcloud.stage.production:#{true}}")
@@ -45,10 +47,11 @@ public class RootController {
 		  .version(isNull(buildProperties) ? null : buildProperties.getVersion())
 		  .buildTime(isNull(buildProperties) ? null : buildProperties.getTime())
 		  .name(isNull(buildProperties) ? null : buildProperties.getName())
-		  .javaVersion(System.getProperty("java.version"))
+		  .javaVersion(System.getProperty(JAVA_VERSION_PROPERTY_NAME))
 		  .isProduction(production)
 		  .build();
 
 		return ResponseEntity.ok(root);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/SecurityConfiguration.java b/server/src/main/java/de/ozgcloud/antragsraum/SecurityConfiguration.java
index 77cf8627f99d762fed6a68edd572fd767a0efc83..3a504feba31e708d0fb22ee6227f5b066ad37b1a 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/SecurityConfiguration.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/SecurityConfiguration.java
@@ -53,6 +53,7 @@ import lombok.RequiredArgsConstructor;
 @EnableWebSecurity
 @RequiredArgsConstructor
 public class SecurityConfiguration {
+
 	private static final String OPTIONS = "OPTIONS";
 	private static final String GET = "GET";
 	private static final String POLICY_DIRECTIVES = "object-src 'none'; child-src 'self'; frame-ancestors 'none'; base-uri 'none'; upgrade-insecure-requests; require-trusted-types-for 'script'";
@@ -137,4 +138,5 @@ public class SecurityConfiguration {
 			}
 		};
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/SwaggerCorsConfiguration.java b/server/src/main/java/de/ozgcloud/antragsraum/SwaggerCorsConfiguration.java
index 46501cbc10a5e242d516eb5c23529d2feb0bac4f..facdf245e341ca04f73c39322c7a6afb5518aca2 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/SwaggerCorsConfiguration.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/SwaggerCorsConfiguration.java
@@ -28,20 +28,21 @@ import org.springframework.web.cors.CorsConfiguration;
 import org.springframework.web.cors.CorsConfigurationSource;
 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 
-
 @Configuration
 public class SwaggerCorsConfiguration {
-    @Bean
-    public CorsConfigurationSource corsFilter() {
-        // Allow anyone and anything access. Probably ok for Swagger spec
-        var config = new CorsConfiguration();
-        config.setAllowCredentials(true);
-        config.addAllowedOrigin("*");
-        config.addAllowedHeader("*");
-        config.addAllowedMethod("*");
 
-        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-        source.registerCorsConfiguration("/**", config);
-        return source;
-    }
+	@Bean
+	public CorsConfigurationSource corsFilter() {
+		// Allow anyone and anything access. Probably ok for Swagger spec
+		var config = new CorsConfiguration();
+		config.setAllowCredentials(true);
+		config.addAllowedOrigin("*");
+		config.addAllowedHeader("*");
+		config.addAllowedMethod("*");
+
+		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+		source.registerCorsConfiguration("/**", config);
+		return source;
+	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/WebConfiguration.java b/server/src/main/java/de/ozgcloud/antragsraum/WebConfiguration.java
index e34e7bf78e42aeb5d1976dd7513916cf52c72615..848c43d2d5cd9a7d3ee0849e613627da617dbc91 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/WebConfiguration.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/WebConfiguration.java
@@ -34,6 +34,7 @@ import org.springframework.web.client.RestTemplate;
 
 @Configuration
 public class WebConfiguration {
+
 	public static final String INFO_MANAGER_REST_CLIENT = "infomanagerRestClient";
 	public static final String NACHRICHT_REST_CLIENT = "nachrichtRestClient";
 	public static final String X_OZG_CLIENT = "X-OZG-CLIENT";
@@ -70,4 +71,5 @@ public class WebConfiguration {
 		  .defaultHeader(X_OZG_CLIENT, ANTRAGSRAUM)
 		  .build();
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileController.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileController.java
index 850d16c480a8d57553c3109da01fc9bd2598d1d3..bbe62e4392b2e29ae302db55f225e7c3a2e441db 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileController.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileController.java
@@ -55,6 +55,7 @@ import lombok.extern.log4j.Log4j2;
 @RequiredArgsConstructor
 @SecurityRequirement(name = "security_auth")
 public class FileController {
+
 	static final String PATH = "/api/file/"; // NOSONAR
 	static final String PATH_PATTERN = PATH + "%s/%s";
 
@@ -127,4 +128,5 @@ public class FileController {
 			throw new InvalidFileTypeException(file.getName());
 		}
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileIdentificationData.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileIdentificationData.java
index f7a44c19cd3a0fae91e5d34ae353929c39b1f5b5..30522a261ac6b97af7094f92f4970cfa847f349d 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileIdentificationData.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileIdentificationData.java
@@ -28,5 +28,7 @@ import lombok.Builder;
 public record FileIdentificationData(
   String fileId,
   String nachrichtId,
-  String nachrichtEventId) {
+  String nachrichtEventId
+) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileProperties.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileProperties.java
index 1f2a2411396c18c1ba6ebb282588e5d50a2d5afd..56164c46846009b093aa59fb3ee93d52197569e8 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileProperties.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileProperties.java
@@ -20,19 +20,22 @@
 
 package de.ozgcloud.antragsraum.attachments;
 
-import lombok.Getter;
-import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.util.unit.DataSize;
 
+import lombok.Getter;
+import lombok.Setter;
+
 @Getter
 @Setter
 @Configuration
 @ConfigurationProperties(FileProperties.PREFIX)
 class FileProperties {
-    static final String PREFIX = "ozgcloud.upload";
 
-    private DataSize maxFileSize;
-    private String[] blockedContentTypes;
+	static final String PREFIX = "ozgcloud.upload";
+
+	private DataSize maxFileSize;
+	private String[] blockedContentTypes;
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRemoteService.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRemoteService.java
index 387b57e63d78e5fe377a49e310fce26848e3ac2a..ecdcdf41917155e3453570f83b74ede2819b915d 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRemoteService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRemoteService.java
@@ -34,6 +34,7 @@ import lombok.extern.log4j.Log4j2;
 @Service
 @RequiredArgsConstructor
 class FileRemoteService {
+
 	private final @NonNull FileRestClient restClient;
 	private final @NonNull OzgFileMapper ozgFileMapper;
 
@@ -58,4 +59,5 @@ class FileRemoteService {
 	void downloadFileContent(FileIdentificationData fileIdentificationData, String address, OutputStream out) {
 		restClient.downloadFileContent(fileIdentificationData, address, out);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRestClient.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRestClient.java
index 9f9eb98599cefa037b2ce5623706d6164aecb9ce..78d53042ad1152fd8936357a525177731929f77a 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRestClient.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileRestClient.java
@@ -52,6 +52,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @Component
 class FileRestClient {
+
 	static final String FIND_FILE_METADATA_API = "/api/v1/file/metadata";
 	static final String GET_FILE_CONTENT_API = "/api/v1/file/content";
 	static final String UPLOAD_FILE_API = "/api/v1/file";
@@ -145,4 +146,5 @@ class FileRestClient {
 			throw new TechnicalException(e);
 		}
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileService.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileService.java
index f1c616aceebd4325dcb2f8c5ff1743e3d5d9b828..300d239e094e1f8292c5f657e3a2fc8e4fdcbdd3 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileService.java
@@ -36,6 +36,7 @@ import lombok.extern.log4j.Log4j2;
 @Service
 @RequiredArgsConstructor
 public class FileService {
+
 	private final @NonNull FileRemoteService fileRemoteService;
 	private final @NonNull VirusScannerClient scanner;
 	private final @NonNull NachrichtEventService nachrichtEventService;
@@ -75,4 +76,5 @@ public class FileService {
 	boolean isClean(MultipartFile file) {
 		return scanner.scan(file).isEmpty();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileValidator.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileValidator.java
index e99a8f7590902c8e51c4cfcc28e580b0e7563a32..5b82907087341aa11847100f3e9fcd9fa40176bd 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileValidator.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/FileValidator.java
@@ -31,6 +31,7 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 @Component
 class FileValidator {
+
 	private final FileProperties fileProperties;
 
 	boolean isValid(MultipartFile file) {
@@ -48,4 +49,5 @@ class FileValidator {
 
 		return !Arrays.asList(fileProperties.getBlockedContentTypes()).contains(contentType);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgFile.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgFile.java
index 8d8a5c657aeb1174dbc5cf4073442b5277475312..20faaa5f0b506248c8cc60d47d38e3d65df4ef57 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgFile.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgFile.java
@@ -50,5 +50,7 @@ public record OzgFile(
 	type = "string",
 	example = "text/plain"
   )
-  String contentType) {
+  String contentType
+) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgUploadFile.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgUploadFile.java
index 690a2372a2b9e86ff20e32ee797b7c3251800306..6809d04b5b86b066ddb4e458c16294c4709047b5 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgUploadFile.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/OzgUploadFile.java
@@ -28,4 +28,5 @@ import lombok.Builder;
 @Validated
 @Builder
 record OzgUploadFile(String vorgangId, MultipartFile file) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/attachments/VirusScannerClient.java b/server/src/main/java/de/ozgcloud/antragsraum/attachments/VirusScannerClient.java
index 4085c550fd58f8bd9597731b265cea39e6941109..531c3df8d497e79e89c4e819b767e728f7301183 100755
--- a/server/src/main/java/de/ozgcloud/antragsraum/attachments/VirusScannerClient.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/attachments/VirusScannerClient.java
@@ -46,6 +46,7 @@ import lombok.extern.log4j.Log4j2;
 @Service
 @RequiredArgsConstructor
 class VirusScannerClient {
+
 	private static final String FILE_REQUEST_KEY = "FILES";
 
 	@Value("${clamav.scanUrl}")
@@ -88,22 +89,29 @@ class VirusScannerClient {
 	@Getter
 	@Setter
 	static class VirusScanResponse {
+
 		private VirusScanData data;
 		private boolean success;
+
 	}
 
 	@Getter
 	@Setter
 	static class VirusScanData {
+
 		private VirusScanResult[] result;
+
 	}
 
 	@Getter
 	@Setter
 	static class VirusScanResult {
+
 		private String name;
 		@JsonProperty("is_infected")
 		private boolean infected;
 		private String[] viruses;
+
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/Command.java b/server/src/main/java/de/ozgcloud/antragsraum/command/Command.java
index aa5345399859e458d9962ab7269292fcb46be814..c60eb0c7ecbbf7da35bedb2df9a721bb316d0d01 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/Command.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/Command.java
@@ -46,5 +46,7 @@ record Command(
   @Min(0)
   long createdAt,
   @Schema(description = "The date on which the command was completed.")
-  Long finishedAt) {
+  Long finishedAt
+) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandController.java b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandController.java
index f9d2e37cf287b7681956fa9e3aab6ff8cdb66fc5..d72e5ae4a991e264de829931c72fe49c72d7943a 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandController.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandController.java
@@ -37,6 +37,7 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 @SecurityRequirement(name = "security_auth")
 class CommandController {
+
 	static final String PATH = "/api"; // NOSONAR
 
 	private final @NonNull CommandService service;
@@ -48,4 +49,5 @@ class CommandController {
 	  @Parameter(description = "The id of the NachrichtEvent the command belongs to", example = "60af924b4f1a2560298b4567") @PathVariable String nachrichtEventId) {
 		return service.getCommand(commandId, nachrichtEventId);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandMapper.java
index f66378a0bda86e8f833a22c826e4959a8a66af85..b573e3c4bda5c18f7fede762bd98cbe6a86e7be5 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandMapper.java
@@ -23,32 +23,32 @@
 package de.ozgcloud.antragsraum.command;
 
 import java.time.ZonedDateTime;
-import java.util.Objects;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
 
 import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcCommand;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
 
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-class CommandMapper {
-	public static final int IN_MILLISECONDS = 1000;
+@Mapper
+interface CommandMapper {
+
+	int IN_MILLISECONDS = 1000;
 
-	static Command fromRestCommand(final AntragraumproxyGrpcCommand command, String nachrichtEventId) {
-		var createdAt = ZonedDateTime.now().toEpochSecond() + IN_MILLISECONDS;
-		if (Objects.nonNull(command.getCreatedAt())) {
-			createdAt = ZonedDateTime.parse(command.getCreatedAt()).toEpochSecond() * IN_MILLISECONDS;
-		}
+	@Mapping(target = "createdAt", expression = "java(convertCreatedAt(command.getCreatedAt()))")
+	@Mapping(target = "finishedAt", expression = "java(convertFinishedAt(command.getFinishedAt()))")
+	@Mapping(target = "nachrichtEventId", source = "nachrichtEventId")
+	Command fromRestCommand(AntragraumproxyGrpcCommand command, String nachrichtEventId);
 
-		var finishedAt = Objects.isNull(command.getFinishedAt()) || command.getFinishedAt().isEmpty()
+	default Long convertCreatedAt(String createdAt) {
+		return createdAt != null
+		  ? ZonedDateTime.parse(createdAt).toEpochSecond() * IN_MILLISECONDS
+		  : ZonedDateTime.now().toEpochSecond() * IN_MILLISECONDS;
+	}
+
+	default Long convertFinishedAt(String finishedAt) {
+		return (finishedAt == null || finishedAt.isEmpty())
 		  ? null
-		  : ZonedDateTime.parse(command.getFinishedAt()).toEpochSecond() * IN_MILLISECONDS;
-
-		return Command.builder()
-		  .id(command.getId())
-		  .nachrichtEventId(nachrichtEventId)
-		  .status(command.getStatus())
-		  .createdAt(createdAt)
-		  .finishedAt(finishedAt)
-		  .build();
+		  : ZonedDateTime.parse(finishedAt).toEpochSecond() * IN_MILLISECONDS;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandReference.java b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandReference.java
index 00e112bc6046822f5d898629f46651866c1a23ba..7480d5df5b1d703de1e07c4aa6b594319b5bc6fd 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandReference.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandReference.java
@@ -38,5 +38,7 @@ public record CommandReference(
 	type = "string",
 	example = "60af924b4f1a2560298b4567"
   )
-  String nachrichtEventId) {
+  String nachrichtEventId
+) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRemoteService.java b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRemoteService.java
index 51793b97671f9656ddf97d1c0c03a4d8203a1563..de5d0ad4ef587b1d083f275d9b5b29bb4956bc2b 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRemoteService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRemoteService.java
@@ -33,11 +33,14 @@ import lombok.extern.log4j.Log4j2;
 @Service
 @RequiredArgsConstructor
 class CommandRemoteService {
+
 	private final @NonNull CommandRestClient restClient;
+	private final @NonNull CommandMapper commandMapper;
 
 	Command getCommand(NachrichtEvent nachrichtEvent, String commandId) {
 		var response = restClient.getCommand(commandId, nachrichtEvent.address());
 
-		return CommandMapper.fromRestCommand(response, nachrichtEvent.id());
+		return commandMapper.fromRestCommand(response, nachrichtEvent.id());
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRestClient.java b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRestClient.java
index 8bb9b294d01055b9bbf6ac6549e07b08c4007f56..4f217db9f3ef3edbda1907d4534f5c0c840b41e3 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRestClient.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandRestClient.java
@@ -34,6 +34,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @Component
 class CommandRestClient {
+
 	static final String COMMAND_URI = "/api/v1/command/{commandId}";
 
 	private final RestClient restClient;
@@ -48,4 +49,5 @@ class CommandRestClient {
 		  .header(X_GRPC_ADDRESS, RestClientUtils.sanitizeAddress(address))
 		  .retrieve().toEntity(AntragraumproxyGrpcCommand.class).getBody();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandService.java b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandService.java
index 999f22bdc9fcebf6f0235bc643b60cebd4df035d..f59b2dec58481dab4bc55e449aa482db021a7cd3 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/command/CommandService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/command/CommandService.java
@@ -33,6 +33,7 @@ import lombok.extern.log4j.Log4j2;
 @Service
 @RequiredArgsConstructor
 class CommandService {
+
 	private final @NonNull CommandRemoteService commandRemoteService;
 	private final @NonNull NachrichtEventService nachrichtEventService;
 
@@ -41,4 +42,5 @@ class CommandService {
 
 		return commandRemoteService.getCommand(nachrichtEvent, commandId);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundAdvice.java b/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundAdvice.java
deleted file mode 100644
index 600933f2dcafc71ef2ce984d0f90101e7e8665cb..0000000000000000000000000000000000000000
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundAdvice.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2023-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.antragsraum.common;
-
-import jakarta.annotation.Priority;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-@ControllerAdvice
-@Log4j2
-@Priority(value = 0)
-public class AddressNotFoundAdvice extends ResponseEntityExceptionHandler {
-    @ResponseBody
-    @ExceptionHandler(AddressNotFoundException.class)
-    @ResponseStatus(HttpStatus.NOT_FOUND)
-    String addressNotFoundHandler(AddressNotFoundException ex) {
-        LOG.error("Error getting address of target OZG-Cloud instance. Message: " + ex.getMessage(), ex);
-        return "Target address not found";
-    }
-}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundException.java
index 0d596dbcc01e16dd7bf99a360450694857642f9b..20fb9f3e29400e5594be46dfef5f6cd567893bd2 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/AddressNotFoundException.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -23,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class AddressNotFoundException extends RuntimeException {
-    private static final String MESSAGE_TEMPLATE = "No NachrichtEvent for id '%s' found";
 
-    public AddressNotFoundException(String replyToId) {
-        super(String.format(MESSAGE_TEMPLATE, replyToId));
-    }
+	private static final String MESSAGE_TEMPLATE = "No NachrichtEvent for id '%s' found";
+
+	public AddressNotFoundException(String replyToId) {
+		super(String.format(MESSAGE_TEMPLATE, replyToId));
+	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/AttachmentNotFoundAdvice.java b/server/src/main/java/de/ozgcloud/antragsraum/common/AttachmentNotFoundAdvice.java
deleted file mode 100644
index a3064ebfd134d95e1b20826789a30e8dbf10caf0..0000000000000000000000000000000000000000
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/AttachmentNotFoundAdvice.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2023-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.antragsraum.common;
-
-import jakarta.annotation.Priority;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-@ControllerAdvice
-@Log4j2
-@Priority(value = 0)
-public class AttachmentNotFoundAdvice extends ResponseEntityExceptionHandler {
-    @ResponseBody
-    @ExceptionHandler(NotFoundException.class)
-    @ResponseStatus(HttpStatus.NOT_FOUND)
-    String handleNotFound(NotFoundException ex) {
-        LOG.error("Error loading attachment.", ex);
-        return "Attachment not found";
-    }
-}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/ExceptionController.java b/server/src/main/java/de/ozgcloud/antragsraum/common/ExceptionController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1a6505accb751a92867d34131bcf392d4e5e978
--- /dev/null
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/ExceptionController.java
@@ -0,0 +1,77 @@
+/*
+ * 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.antragsraum.common;
+
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.context.request.WebRequest;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
+
+import lombok.extern.log4j.Log4j2;
+
+@Log4j2
+@ControllerAdvice
+public class ExceptionController extends ResponseEntityExceptionHandler {
+
+	@ResponseBody
+	@ExceptionHandler(AddressNotFoundException.class)
+	@ResponseStatus(HttpStatus.NOT_FOUND)
+	String handleAddressNotFoundException(AddressNotFoundException ex) {
+		LOG.error("Error getting address of target OZG-Cloud instance. Message: {}", ex.getMessage(), ex);
+		return "Target address not found";
+	}
+
+	@ResponseBody
+	@ExceptionHandler(NotFoundException.class)
+	@ResponseStatus(HttpStatus.NOT_FOUND)
+	String handleNotFoundException(NotFoundException ex) {
+		LOG.error("Error loading attachment.", ex);
+		return "Attachment not found";
+	}
+
+	@ExceptionHandler(value = { RuntimeException.class, TechnicalException.class })
+	@ResponseBody
+	@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+	String handleGeneralException(RuntimeException ex) {
+		LOG.error("General error.", ex);
+		return "General error processing your request.";
+	}
+
+	@ExceptionHandler(value = { InvalidFileTypeException.class })
+	ResponseEntity<Object> handleInvalidFileTypeException(RuntimeException ex, WebRequest request) {
+		LOG.error("Uploaded file is not valid.", ex);
+		return handleExceptionInternal(ex, "File not acceptable", new HttpHeaders(), HttpStatus.NOT_ACCEPTABLE, request);
+	}
+
+	@ExceptionHandler(value = { VirusFoundException.class })
+	ResponseEntity<Object> handleVirusFoundException(RuntimeException ex, WebRequest request) {
+		LOG.error("Virus found in uploaded file.", ex);
+		return handleExceptionInternal(ex, "Virus found", new HttpHeaders(), HttpStatus.NOT_ACCEPTABLE, request);
+	}
+
+}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/GeneralExceptionAdvice.java b/server/src/main/java/de/ozgcloud/antragsraum/common/GeneralExceptionAdvice.java
deleted file mode 100755
index 57e7374408a86c008afb86479291fadc96b5fe88..0000000000000000000000000000000000000000
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/GeneralExceptionAdvice.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2023-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.antragsraum.common;
-
-import jakarta.annotation.Priority;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-@ControllerAdvice
-@Log4j2
-@Priority(value = 9)
-public class GeneralExceptionAdvice extends ResponseEntityExceptionHandler {
-    @ExceptionHandler(value = {RuntimeException.class, TechnicalException.class})
-    @ResponseBody
-    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
-    String handleException(RuntimeException ex) {
-        LOG.error("General error.", ex);
-        return "General error processing your request.";
-    }
-}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileAdvice.java b/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileAdvice.java
deleted file mode 100755
index e24bea7c2cd28b6e85cf79cc0d37d40c86a69552..0000000000000000000000000000000000000000
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileAdvice.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2023-2024.
- * 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.antragsraum.common;
-
-import jakarta.annotation.Priority;
-
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.context.request.WebRequest;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-import lombok.extern.log4j.Log4j2;
-
-@ControllerAdvice
-@Log4j2
-@Priority(value = 0)
-public class InvalidFileAdvice extends ResponseEntityExceptionHandler {
-	@ExceptionHandler(value = { InvalidFileTypeException.class })
-	protected ResponseEntity<Object> handleInvalidFile(RuntimeException ex, WebRequest request) {
-		LOG.error("Uploaded file is not valid.", ex);
-		return handleExceptionInternal(ex, "File not acceptable", new HttpHeaders(), HttpStatus.NOT_ACCEPTABLE, request);
-	}
-}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileTypeException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileTypeException.java
index ef2d2293003de12924bc282b13dd1edf25e7f924..bfab6ca9557804c82f7d0c9e66177ab248cbd87e 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileTypeException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/InvalidFileTypeException.java
@@ -1,5 +1,7 @@
 /*
- * Copyright (c) 2023-2024.
+ * Copyright (c) 2023-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");
@@ -21,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class InvalidFileTypeException extends RuntimeException {
-    private static final String MESSAGE_TEMPLATE = "File '%s' has an unsupported file type";
 
-    public InvalidFileTypeException(String fileName) {
-        super(String.format(MESSAGE_TEMPLATE, fileName));
-    }
+	private static final String MESSAGE_TEMPLATE = "File '%s' has an unsupported file type";
+
+	public InvalidFileTypeException(String fileName) {
+		super(String.format(MESSAGE_TEMPLATE, fileName));
+	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/NotAccessibleException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/NotAccessibleException.java
index 88398b40b1b089bb25a30a9250b27c377311542c..2d974e5ae9f9857d48f679f9b1b6927527bb6520 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/NotAccessibleException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/NotAccessibleException.java
@@ -23,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class NotAccessibleException extends RuntimeException {
+
 	private static final String MESSAGE_TEMPLATE = "Current user does not have the required trust level for the Rueckfrage with id '%s'.";
 
 	public NotAccessibleException(String rueckfrageId) {
 		super(String.format(MESSAGE_TEMPLATE, rueckfrageId));
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/NotFoundException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/NotFoundException.java
index 543be5a1a1b074101087f240a9d8c6f05402616b..a0cbaf2a8e30db5e707ff81f4c8bea54eecaf4c8 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/NotFoundException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/NotFoundException.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -23,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class NotFoundException extends RuntimeException {
-    private static final String MESSAGE_TEMPLATE = "Object '%s' with id '%s' not found.";
 
-    public NotFoundException(Class<?> resource, String id) {
-        super(String.format(MESSAGE_TEMPLATE, resource.getSimpleName(), id));
-    }
+	private static final String MESSAGE_TEMPLATE = "Object '%s' with id '%s' not found.";
+
+	public NotFoundException(Class<?> resource, String id) {
+		super(String.format(MESSAGE_TEMPLATE, resource.getSimpleName(), id));
+	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/RestClientUtils.java b/server/src/main/java/de/ozgcloud/antragsraum/common/RestClientUtils.java
index c0930e849f62a161560d89545be020db837020a9..b94e1cf8dcfc20485636d3efb72e032f0498b549 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/RestClientUtils.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/RestClientUtils.java
@@ -27,9 +27,11 @@ import lombok.NoArgsConstructor;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public class RestClientUtils {
+
 	public static String sanitizeAddress(String address) {
 		address = address.replaceAll(":\\d{4}$", "");
 		address = address.replaceAll("^static://", "");
 		return address;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/SendTimeoutAdvice.java b/server/src/main/java/de/ozgcloud/antragsraum/common/SendTimeoutAdvice.java
deleted file mode 100755
index 39ee5a627bc762039f6ff9414f21fd46258e595f..0000000000000000000000000000000000000000
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/SendTimeoutAdvice.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2023-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.antragsraum.common;
-
-import jakarta.annotation.Priority;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-@ControllerAdvice
-@Log4j2
-@Priority(value = 0)
-public class SendTimeoutAdvice extends ResponseEntityExceptionHandler {
-    @ResponseBody
-    @ExceptionHandler(SendTimeoutException.class)
-    @ResponseStatus(HttpStatus.GATEWAY_TIMEOUT)
-    String sendTimeoutHandler(SendTimeoutException ex) {
-        LOG.error("Timeout while sending answer. Message: " + ex.getMessage(), ex);
-        return "Timeout while sending answer";
-    }
-}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/TechnicalException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/TechnicalException.java
index f3fd6b1923808c818b893c2879c3e002f129d950..ecb333f0bb1c2092ce7a3297678dbc053eed88bf 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/TechnicalException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/TechnicalException.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -23,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class TechnicalException extends RuntimeException {
-    private static final String MESSAGE_TEMPLATE = "TechnicalException happened! Message: ";
 
-    public TechnicalException(Throwable ex) {
-        super(MESSAGE_TEMPLATE + ex.getMessage(), ex);
-    }
+	private static final String MESSAGE_TEMPLATE = "TechnicalException happened! Message: ";
+
+	public TechnicalException(Throwable ex) {
+		super(MESSAGE_TEMPLATE + ex.getMessage(), ex);
+	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundAdvice.java b/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundAdvice.java
deleted file mode 100755
index 6dc0b12e0e0ed8e2b511b9d43a9158b395a16568..0000000000000000000000000000000000000000
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundAdvice.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2023-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.antragsraum.common;
-
-import jakarta.annotation.Priority;
-import lombok.extern.log4j.Log4j2;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.context.request.WebRequest;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-@ControllerAdvice
-@Log4j2
-@Priority(value = 0)
-public class VirusFoundAdvice extends ResponseEntityExceptionHandler {
-    @ExceptionHandler(value = {VirusFoundException.class})
-    protected ResponseEntity<Object> handleVirusFound(RuntimeException ex, WebRequest request) {
-        LOG.error("Virus found in uploaded file.", ex);
-        return handleExceptionInternal(ex, "Virus found", new HttpHeaders(), HttpStatus.NOT_ACCEPTABLE, request);
-    }
-}
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundException.java
old mode 100755
new mode 100644
index 6ca6e78da97efc6fe13a267e446a3553efea24c2..d5e3887f4151542b0ac10c97c8c3de4daf5ec1a1
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/VirusFoundException.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -23,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class VirusFoundException extends RuntimeException {
-    private static final String MESSAGE_TEMPLATE = "File with nachrichtId '%s' contains virus.";
 
-    public VirusFoundException(String id) {
-        super(String.format(MESSAGE_TEMPLATE, id));
-    }
+	private static final String MESSAGE_TEMPLATE = "File with nachrichtId '%s' contains virus.";
+
+	public VirusFoundException(String id) {
+		super(String.format(MESSAGE_TEMPLATE, id));
+	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/VirusScanException.java b/server/src/main/java/de/ozgcloud/antragsraum/common/VirusScanException.java
index f130b513e469ebc25ef9be032e1a0f2165de0267..14a0a555549f4106a8b769e61966780ea55e62dc 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/VirusScanException.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/VirusScanException.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -23,9 +23,11 @@
 package de.ozgcloud.antragsraum.common;
 
 public class VirusScanException extends RuntimeException {
+
 	private static final String MESSAGE_TEMPLATE = "Virus scan for file with name '%s' failed.";
 
 	public VirusScanException(String fileName) {
 		super(String.format(MESSAGE_TEMPLATE, fileName));
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryAspectPointcut.java b/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryAspectPointcut.java
index 47f0bcdda4fca053d060bed639c87e17a27441aa..e0ffdb8515551923824ea2fb583d0dae677d5db0 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryAspectPointcut.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryAspectPointcut.java
@@ -31,4 +31,5 @@ public class RepositoryAspectPointcut {
 	void anyPublicRepositoryMethod() {
 		// aspect pointcut - no implementation needed
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryLoggingAspect.java b/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryLoggingAspect.java
index efb41906f2b1771743030b3fd3fdbd6d50aaa9c9..4a2566afc52badce37d5a0d754e614f7fc9f01da 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryLoggingAspect.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/common/logging/RepositoryLoggingAspect.java
@@ -36,4 +36,5 @@ public class RepositoryLoggingAspect extends RepositoryAspectPointcut {
 	public void onRepositoryMethod(JoinPoint joinPoint) {
 		AspectLoggingUtils.log(joinPoint);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEvent.java b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEvent.java
index d325c2f78edc7c1b6787af994bd89f801cb89b56..247b36bdabafc355c6927906172857bbfd895953 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEvent.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEvent.java
@@ -25,5 +25,10 @@ package de.ozgcloud.antragsraum.events;
 import lombok.Builder;
 
 @Builder
-public record NachrichtEvent(String id, String postfachId, String address) {
+public record NachrichtEvent(
+  String id,
+  String postfachId,
+  String address
+) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventMapper.java
index a64e190a789629c4d91611db79d84e129542bb5c..c1b013a79074b4e1c0da05f69379e636fb2921e7 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventMapper.java
@@ -32,4 +32,5 @@ interface NachrichtEventMapper {
 
 	@Mapping(target = "address", source = "ozgCloudAddress")
 	NachrichtEvent fromRest(InfoGrpcInformationNachricht nachricht);
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteService.java b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteService.java
index a21c383991d39b6e92e74e8d431f84cb826e9275..3d303df62378a24f15901e2e2cf14fade8cf589f 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteService.java
@@ -30,6 +30,7 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 @Service
 class NachrichtEventRemoteService {
+
 	private final NachrichtEventRestClient restClient;
 	private final NachrichtEventMapper mapper;
 
@@ -48,4 +49,5 @@ class NachrichtEventRemoteService {
 
 		return response.getNachrichten().stream().map(mapper::fromRest).toList();
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClient.java b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClient.java
index 31903a7b6a622a524d1687b5a1159a09d422e6bf..190e7cffe94049e3a4f5b95b77483bfec46b0fa7 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClient.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClient.java
@@ -11,6 +11,7 @@ import de.ozgcloud.common.errorhandling.TechnicalException;
 
 @Component
 class NachrichtEventRestClient {
+
 	static final String INFORMATION_LIST_ENDPOINT = "api/v1/informations/{postfachId}";
 	static final String INFORMATION_ENDPOINT = "api/v1/information/{id}";
 
@@ -39,4 +40,5 @@ class NachrichtEventRestClient {
 			throw new TechnicalException("Error retrieving data from grpc using restclient.", e);
 		}
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventService.java b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventService.java
index 76381359342b253c907249f5c0b7a68fcaae86ce..e6fb6b676e6aa5d73657c29bbbe49a7a019e4b97 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/events/NachrichtEventService.java
@@ -32,6 +32,7 @@ import lombok.RequiredArgsConstructor;
 @Service
 @RequiredArgsConstructor
 public class NachrichtEventService {
+
 	private final @NonNull NachrichtEventRemoteService remoteService;
 
 	public NachrichtEvent getNachrichtEventById(String id) {
@@ -41,4 +42,5 @@ public class NachrichtEventService {
 	public List<NachrichtEvent> getNachrichtEventsOfPostfachId(String postfachId) {
 		return remoteService.getNachrichtEventsByPostfach(postfachId);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java
index d88c4a1f26d78c819dd373d5651120cc7647eb20..b67bc4dcb635415c77cfd6209968b7061910427c 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java
@@ -45,4 +45,5 @@ interface AntragraumProxyMapper {
 
 		return nachricht.attachments().stream().map(OzgFile::id).toList();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java
index 45e6bbca1c99b482ca81396d51f231221a40d2a4..90cacbcddfbdf5fe7b0b3530ae5db06790eb205d 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java
@@ -27,6 +27,7 @@ import lombok.NoArgsConstructor;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class AttachmentMapper {
+
 	static OzgFile fromGrpcBinaryFile(GrpcBinaryFile file) {
 		return OzgFile.builder()
 		  .id(file.getId())
@@ -34,4 +35,5 @@ class AttachmentMapper {
 		  .fileSize(file.getSize())
 		  .contentType(file.getContentType()).build();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java
index 6d762929c6627ff46c0185b01c58e75cb594c938..218e433a1db9b03c909215a344b72cdfeb9e329d 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java
@@ -119,4 +119,5 @@ record Nachricht(
 		  ", status='" + status + '\'' +
 		  '}';
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java
index d72c3066c4949998c3e35dd70546f1899a364ded..af5f444cd6bcfd22889300c4b6c3ed357c2780c7 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java
@@ -79,4 +79,5 @@ record NachrichtHeader(
 	type = "String"
   )
   String status) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java
index 032a097056123aa9e662f0375df4b78221aa6bed..5b0886fb37eff7f7881233be4dd1858f1e7e28ff 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java
@@ -34,6 +34,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class NachrichtHeaderMapper {
+
 	private static long toMillisecondsTimestamp(String dateString) {
 		long timestamp = 0;
 		try {
@@ -63,4 +64,5 @@ class NachrichtHeaderMapper {
 
 		return builder.build();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java
index f2fec2a82099a67d9fa676afdb548798b57908d4..0e7f66a1844ba29aa5402502306e0eed0d9a6ef3 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java
@@ -42,6 +42,7 @@ import lombok.extern.log4j.Log4j2;
 @Service
 @RequiredArgsConstructor
 class NachrichtMapper {
+
 	private final @NonNull FileService fileService;
 
 	private List<OzgFile> getAttachments(List<String> fileIds, String nachrichtId, String nachrichtEventId) {
@@ -126,4 +127,5 @@ class NachrichtMapper {
 
 		return antwort;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java
index f81cb4bb84d67d7189e9ed5809dfb88ecd7903fc..b5cd8e3926bf5374103243abc5033b282e40db3f 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java
@@ -44,6 +44,7 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 @SecurityRequirement(name = "security_auth")
 class NachrichtenController {
+
 	static final String PATH = "/api"; // NOSONAR
 
 	private final @NonNull NachrichtenService service;
@@ -69,4 +70,5 @@ class NachrichtenController {
 	CommandReference sendNachricht(@Parameter(description = "The Nachricht content as JSON") @RequestBody @Valid ReplyNachricht nachricht) {
 		return service.sendRueckfrageAnswer(nachricht);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java
index 3fb1be48928fdafb737c6d1771a0d35dc34366da..4d3bc500c45635ee622d99998e1a6162ef2fc7f0 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java
@@ -38,6 +38,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @RequiredArgsConstructor
 class NachrichtenRemoteService {
+
 	private final NachrichtenRestClient nachrichtenRestClient;
 	private final NachrichtMapper nachrichtMapper;
 	private final AntragraumProxyMapper antragraumProxyMapper;
@@ -80,4 +81,5 @@ class NachrichtenRemoteService {
 		  .nachrichtEventId(nachricht.nachrichtEventId())
 		  .build();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java
index de64f5d6445c07f34cdb0ac76e3649ff4d995e12..d8a357d1ee977dc486f8ae9fb15a28a018de5f50 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java
@@ -42,6 +42,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @Component
 public class NachrichtenRestClient {
+
 	static final String GET_RUECKFRAGEN_URI = "api/v1/rueckfragen";
 	static final String GET_RUECKFRAGE_URI = "api/v1/rueckfrage";
 	static final String SEND_ANTWORT_URI = "api/v1/antworten";
@@ -108,4 +109,5 @@ public class NachrichtenRestClient {
 			throw e;
 		}
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java
index b1a9b37f695f2cfd90675e5cd719aabe8e747f28..22ff98978d9c52c08d03b7a78c776a177c87209c 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java
@@ -47,6 +47,7 @@ import lombok.extern.log4j.Log4j2;
 @Validated
 @RequiredArgsConstructor
 class NachrichtenService {
+
 	static final String RUECKFRAGE_LINK_RELATIONSHIP_NAME = "rueckfrage";
 
 	private final @NonNull NachrichtEventService nachrichtEventService;
@@ -112,4 +113,5 @@ class NachrichtenService {
 			throw new TechnicalException(new ConstraintViolationException(validationResult));
 		}
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java
index 071cc1ad752021b551f7844c3dd1952f66a12b73..51d89d93c3f4eb8f80844b6ffd14112b54c8837b 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java
@@ -86,4 +86,5 @@ record ReplyNachricht(
 		  ", message=<...masked for privacy..>" +
 		  '}';
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java
index dffc73fe9ce861758b54d6435a1a284c084d5bde..bf360a1307c04ec6cc6cf56bbd6c45e4004dd718 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java
@@ -23,5 +23,7 @@
 package de.ozgcloud.antragsraum.nachricht;
 
 enum ReplyOption {
-	FORBIDDEN, ALLOWED, UNDEFINED
+	FORBIDDEN,
+	ALLOWED,
+	UNDEFINED
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java
index b4d28c83bf61673b91420dc13ba1509b3684aa3a..bd37ac515eb534a65b1a6c04161cdccae1685d54 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java
@@ -31,6 +31,7 @@ import lombok.Getter;
 @Builder
 @Getter
 class Rueckfrage {
+
 	@Schema(description = "The title of the Rueckfrage. This is the title of the Vorgang",
 	  name = "title",
 	  type = "string",
@@ -75,4 +76,5 @@ class Rueckfrage {
 		  ", antworten=<...masked for privacy..>" +
 		  '}';
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java
index c170953aef7180725de8e11fe81c36966aa253ba..12566f7a9ee5d52663581e5e773c386208ee4a4d 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java
@@ -33,6 +33,7 @@ import lombok.Getter;
 @Getter
 @EqualsAndHashCode(callSuper = true)
 class RueckfrageHeader extends RepresentationModel<RueckfrageHeader> {
+
 	@Schema(description = "The title of the rueckfrage. This is the title of the Vorgang",
 	  name = "title",
 	  type = "string",
@@ -59,4 +60,5 @@ class RueckfrageHeader extends RepresentationModel<RueckfrageHeader> {
 	  type = "String"
 	)
 	String status;
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java
index bddbc759e27ed37a944ea46994bedb132b263e19..165dd526a6c339485b22cdd4c4b301cf92809b94 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java
@@ -32,6 +32,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class RueckfrageHeaderMapper {
+
 	static List<RueckfrageHeader> fromNachrichtHeaders(Collection<NachrichtHeader> nachrichtHeaders) {
 		return nachrichtHeaders.stream().map(RueckfrageHeaderMapper::fromNachrichtHeader).toList();
 	}
@@ -45,4 +46,5 @@ class RueckfrageHeaderMapper {
 		  .status(nachrichtHeader.status())
 		  .build();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java
index d147533bde77d21fb1a2385df12dcbaaba24e714..25cccb4f6dcfc2fe2ecf7d8895ef05ee40d5b62a 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java
@@ -29,6 +29,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class RueckfrageMapper {
+
 	static Rueckfrage fromNachricht(Nachricht nachricht) {
 		var clerkNachricht = nachricht.toBuilder().replyNachrichten(null).build();
 
@@ -41,4 +42,5 @@ class RueckfrageMapper {
 		  .antworten(nachricht.replyNachrichten())
 		  .build();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java
index 0ebc5b668b8433b5d29b38b695217b1e89e03e48..6368e2d480f621dd452ffe43284506052b867ed6 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java
@@ -29,6 +29,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class TrustLevelMapper {
+
 	static final String TRUST_LEVEL_STORK_QAA_LEVEL_1 = "STORK-QAA-Level-1";
 	static final String TRUST_LEVEL_STORK_QAA_LEVEL_2 = "STORK-QAA-Level-2";
 	static final String TRUST_LEVEL_STORK_QAA_LEVEL_3 = "STORK-QAA-Level-3";
@@ -53,4 +54,5 @@ class TrustLevelMapper {
 		LOG.debug("Mapping trust level {} to {}", trustLevel, result);
 		return result;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandler.java b/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandler.java
index 13194163562cdf160a387f750ffa3aa21482b202..93ffdf3c51feae0b5714670bec83b546410d3029 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandler.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandler.java
@@ -20,27 +20,32 @@
 
 package de.ozgcloud.antragsraum.security;
 
+import java.io.IOException;
+import java.util.Objects;
+
 import jakarta.servlet.ServletException;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-import lombok.RequiredArgsConstructor;
+
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler;
 import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
 
-import java.io.IOException;
-import java.util.Objects;
+import lombok.RequiredArgsConstructor;
 
 @RequiredArgsConstructor
 public class AntragsraumLogoutSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler implements LogoutSuccessHandler {
+
 	private final UserDetailsService userDetailService;
 
-	public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
+	public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
+	  throws IOException, ServletException {
 		if (Objects.nonNull(authentication) && authentication.getPrincipal() instanceof User user) {
 			((InMemoryUserDetailService) userDetailService).logout(user);
 		}
 
 		super.handle(request, response, authentication);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumProperties.java b/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumProperties.java
index 622d80609f1624c358abcb81b3b404c66efb342c..b61c326a28477111f71399d5bc1aa64b17451a3c 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumProperties.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/AntragsraumProperties.java
@@ -20,16 +20,19 @@
 
 package de.ozgcloud.antragsraum.security;
 
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
 import lombok.Getter;
 import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
 
 @ConfigurationProperties(prefix = "ozgcloud.antragsraum")
 @Getter
 @Setter
 public class AntragsraumProperties {
-    private String[] authOrigins;
-    private String[] apiOrigins;
-    private String[] otherOrigins;
-    private String logoutSuccessUrl = "http://localhost:8082/?logout";
+
+	private String[] authOrigins;
+	private String[] apiOrigins;
+	private String[] otherOrigins;
+	private String logoutSuccessUrl = "http://localhost:8082/?logout";
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/AuthCode.java b/server/src/main/java/de/ozgcloud/antragsraum/security/AuthCode.java
index 7e999c8addc7dab9bb3b9afedf915a8ee43725ff..577c939fe1f732dd2ba0ea445b6f923a579e2869 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/AuthCode.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/AuthCode.java
@@ -21,4 +21,5 @@
 package de.ozgcloud.antragsraum.security;
 
 record AuthCode(String code) {
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationController.java b/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationController.java
index 4bb26808b2b6fdd104747a3703164c3edfce0ec7..9dffaa14506a950d1c659c47206f3adabb612bcb 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationController.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationController.java
@@ -41,6 +41,7 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor
 @RequestMapping(AuthenticationController.PATH)
 class AuthenticationController {
+
 	static final String PATH = "/auth"; // NOSONAR
 
 	private final InMemoryUserDetailService userDetailsService;
@@ -84,4 +85,5 @@ class AuthenticationController {
 
 		return ResponseEntity.ok("Success");
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationHelper.java b/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationHelper.java
index 6f20f2ffd44b48379d2517fbe28d4c56e03c971c..f58309a0464337f779d106bd13b13964749c8115 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationHelper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/AuthenticationHelper.java
@@ -38,6 +38,7 @@ import lombok.extern.log4j.Log4j2;
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 @Log4j2
 public class AuthenticationHelper {
+
 	static final String NO_SAML_TOKEN = "--not set--";
 	private static final AuthenticationTrustResolver TRUST_RESOLVER = new AuthenticationTrustResolverImpl();
 	private static final Predicate<Authentication> TRUSTED = auth -> !TRUST_RESOLVER.isAnonymous(auth);
@@ -59,4 +60,5 @@ public class AuthenticationHelper {
 
 		return tokenValue;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdProperties.java b/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdProperties.java
index 46b8ac67857cf2bb0aacfb495f60377f643e23da..4dc3b76571a55a0c535a11d23eab5fd864757cae 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdProperties.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdProperties.java
@@ -32,8 +32,10 @@ import lombok.Setter;
 @Getter
 @Setter
 public class BayernIdProperties {
+
 	private String organizationDisplayName;
 	private Map<String, String> authnMethods;
 	private List<String> requestedAttributeUrns;
 	private String redirectUrl;
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdSaml2Extension.java b/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdSaml2Extension.java
index 384fc1a0c7c4f151f323824c29b703bf6b8e6474..c3fedb32615650eeac35b39c85b5c3a8a16b7d26 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdSaml2Extension.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/BayernIdSaml2Extension.java
@@ -36,6 +36,7 @@ import lombok.RequiredArgsConstructor;
 @Component
 @RequiredArgsConstructor
 public class BayernIdSaml2Extension {
+
 	@NonNull
 	private final BayernIdProperties properties;
 
@@ -116,4 +117,5 @@ public class BayernIdSaml2Extension {
 
 		return displayInformationElement;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/DefaultRole.java b/server/src/main/java/de/ozgcloud/antragsraum/security/DefaultRole.java
index abe82eea8a056970ebd68e3763dc8c2836128829..9cb16a5c056f4fa68a608b65217de6a91e5fac27 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/DefaultRole.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/DefaultRole.java
@@ -23,10 +23,12 @@ package de.ozgcloud.antragsraum.security;
 import org.springframework.security.core.GrantedAuthority;
 
 class DefaultRole implements GrantedAuthority {
+
 	public static final String ROLE = "ROLE_USER";
 
 	@Override
 	public String getAuthority() {
 		return ROLE;
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailService.java b/server/src/main/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailService.java
index 3cf3fb6d54c788490d00144859e396445259deb5..c89d01e0f220079c9bb9a36bbf59e8d01df32b0d 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailService.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailService.java
@@ -49,6 +49,7 @@ import lombok.extern.log4j.Log4j2;
 @NoArgsConstructor
 @Log4j2
 public class InMemoryUserDetailService implements UserDetailsService {
+
 	@Value("${ozgcloud.code.expire.seconds:10}")
 	private long codeExpireSeconds;
 	@Value("${ozgcloud.jwt.expiration.minutes}")
@@ -138,4 +139,5 @@ public class InMemoryUserDetailService implements UserDetailsService {
 	public void logout(User user) {
 		usersMap.remove(user.getId());
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenFilter.java b/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenFilter.java
index 866c00c3968dca9881b5790ed5be38b66d3c42bc..c9a898a13cbf2617af2137c514314dbb6bf1e9fa 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenFilter.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenFilter.java
@@ -48,6 +48,7 @@ import lombok.extern.log4j.Log4j2;
 @RequiredArgsConstructor
 @Component
 public class JwtTokenFilter extends OncePerRequestFilter {
+
 	public static final String TOKEN_HEADER = "Authorization";
 	public static final String TOKEN_PREFIX = "Bearer ";
 
@@ -92,4 +93,5 @@ public class JwtTokenFilter extends OncePerRequestFilter {
 		}
 		return Optional.empty();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenProvider.java b/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenProvider.java
index b6121fe95ea03d98664ccfc036fffbeee7885a08..284eae0916a1f33f9c7e4a49b689f1f287fad371 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenProvider.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenProvider.java
@@ -37,6 +37,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @Component
 class JwtTokenProvider {
+
 	public static final String TOKEN_TYPE = "JWT";
 	public static final String TOKEN_ISSUER = "antragsraum-api";
 	public static final String TOKEN_AUDIENCE = "antragsraum-app";
@@ -80,4 +81,5 @@ class JwtTokenProvider {
 		  .claim("trustlevel", user.getTrustLevel())
 		  .compact();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenVerifier.java b/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenVerifier.java
index d8be96e1db725759e2edb0edbbfe9077a6b775bf..db2cab22ae9281e45ff18c93f4c670fd898929c1 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenVerifier.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/JwtTokenVerifier.java
@@ -40,6 +40,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 @Component
 class JwtTokenVerifier {
+
 	@Value("${ozgcloud.jwt.secret}")
 	private String jwtSecret;
 
@@ -72,4 +73,5 @@ class JwtTokenVerifier {
 		}
 		return Optional.empty();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithm.java b/server/src/main/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithm.java
index 7e5cea725cb7905e0acb74dd020c1c99fd0bfc0d..c3becbbe4b7e1b67cf965f05be301eb090d4f6e8 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithm.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithm.java
@@ -29,6 +29,7 @@ import lombok.NonNull;
 
 @NoArgsConstructor
 final class SHA256withRSAAndMGF1SignatureAlgorithm implements SignatureAlgorithm {
+
 	static final String RSA_ALGORITHM_ID = "RSA";
 	static final String RSA_SHA256_MGF1_ALGORITHM_URL = "http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1";
 	static final String RSA_SHA256_MGF1_ALGORITHM_ID = "SHA256withRSAandMGF1";
@@ -58,4 +59,5 @@ final class SHA256withRSAAndMGF1SignatureAlgorithm implements SignatureAlgorithm
 	public String getDigest() {
 		return SHA256_ALGORITHM_ID;
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategy.java b/server/src/main/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategy.java
index ee7e5b6bd3032cb53f5748763cb19ef185fd9ac0..8f8570fd23b4bd41187cb69f2bc42590bb1999a2 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategy.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategy.java
@@ -36,6 +36,7 @@ import lombok.extern.log4j.Log4j2;
 
 @Log4j2
 class SamlRedirectStrategy extends DefaultRedirectStrategy {
+
 	private final UserDetailsService userDetailsService;
 	private final String redirectUrl;
 	private String onetimeToken;
@@ -72,4 +73,5 @@ class SamlRedirectStrategy extends DefaultRedirectStrategy {
 
 		response.sendRedirect(calculateRedirectUrl);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandler.java b/server/src/main/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandler.java
index 0f125093103b170604199e9b56868b47d99fe21f..4df724fd16a4c98538454a95ee55e26709ac60d6 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandler.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandler.java
@@ -40,6 +40,7 @@ import lombok.extern.log4j.Log4j2;
 
 @Log4j2
 public class SamlUrlAuthenticationSuccessHandler implements AuthenticationSuccessHandler {
+
 	private final SamlRedirectStrategy redirectStrategy;
 
 	private final Map<String, String> roleTargetUrlMap = new HashMap<>();
@@ -97,4 +98,5 @@ public class SamlUrlAuthenticationSuccessHandler implements AuthenticationSucces
 
 		session.removeAttribute(WebAttributes.AUTHENTICATION_EXCEPTION);
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/SecurityProvider.java b/server/src/main/java/de/ozgcloud/antragsraum/security/SecurityProvider.java
index 98ef48877071818e013cc6b844805e30a3d60c3a..c824b38d0fb3867619940ca9e588ab37d24e36fc 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/SecurityProvider.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/SecurityProvider.java
@@ -30,6 +30,7 @@ import org.opensaml.xmlsec.algorithm.AlgorithmRegistry;
 import org.springframework.beans.factory.InitializingBean;
 
 public class SecurityProvider implements InitializingBean {
+
 	@Override
 	public void afterPropertiesSet() {
 		Security.addProvider(new BouncyCastleProvider());
@@ -45,4 +46,5 @@ public class SecurityProvider implements InitializingBean {
 			ConfigurationService.register(AlgorithmRegistry.class, algorithmRegistry);
 		}
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/User.java b/server/src/main/java/de/ozgcloud/antragsraum/security/User.java
index 42317167610d4f52bda6da394047b0b7f43c285b..0ba59b2957e46dc0f07d099c32ea51a8da353edf 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/User.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/User.java
@@ -39,6 +39,7 @@ import lombok.Getter;
 @Builder(toBuilder = true)
 @Getter
 class User implements UserDetails {
+
 	private String id;
 	private String samlToken;
 	private String firstName;
@@ -89,4 +90,5 @@ class User implements UserDetails {
 	PasswordEncoder passwordEncoder() {
 		return PasswordEncoderFactories.createDelegatingPasswordEncoder();
 	}
+
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/security/UserMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/security/UserMapper.java
index a95d1fbf3e2b73819acb1eceefc458a0f8e048e9..3a922ee1b9d62c759c2d0e211453123e2db84c83 100644
--- a/server/src/main/java/de/ozgcloud/antragsraum/security/UserMapper.java
+++ b/server/src/main/java/de/ozgcloud/antragsraum/security/UserMapper.java
@@ -34,6 +34,7 @@ import lombok.NoArgsConstructor;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class UserMapper {
+
 	public static final String POSTKORB_HANDLE_URN = "urn:oid:2.5.4.18";
 	public static final String BK2_URN = "urn:oid:1.3.6.1.4.1.25484.494450.3";
 	public static final String VORNAME_URN = "urn:oid:2.5.4.42";
@@ -76,4 +77,5 @@ class UserMapper {
 	static List<Map.Entry<String, List<Object>>> getUnknownAttributes(Map<String, List<Object>> attributes) {
 		return attributes.entrySet().stream().filter(entry -> !ArrayUtils.contains(KNOWN_ATTRIBUTES, entry.getKey())).toList();
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationITCase.java
index 78fb758a9c6525d24f1cb0b991bfdd28a30e9384..482bf22b125002bf4e58c43c5539123c5b8f723a 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationITCase.java
@@ -29,7 +29,9 @@ import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
 @SpringBootTest
 @SpringJUnitConfig(classes = { AntragsRaumApplicationTestConfiguration.class })
 class AntragsRaumApplicationITCase {
+
 	@Test
 	void shouldLoadContext() { // NOSONAR
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTest.java b/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTest.java
index b647f91329747354a7dc7a27ec1b56ed185126b4..3598fd6eb03285fb06f180371f99f5d52ef28495 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTest.java
@@ -31,6 +31,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
 
 @ExtendWith(MockitoExtension.class)
 class AntragsRaumApplicationTest {
+
 	@Spy
 	@InjectMocks
 	private AntragsRaumApplication application;
@@ -48,4 +49,5 @@ class AntragsRaumApplicationTest {
 
 		assertThat(customizer).isNotNull();
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTestConfiguration.java
index 7b89a3b2058a115712ffbd5f6b075662daccdb9d..b86fff38b890c940a692a539e10c3b88d3c8f505 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/AntragsRaumApplicationTestConfiguration.java
@@ -30,4 +30,5 @@ import org.springframework.context.annotation.FilterType;
 @ComponentScan(value = { "de.ozgcloud" },
   excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = ".*[TestConfiguration].*"))
 public class AntragsRaumApplicationTestConfiguration {
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/ModularityTests.java b/server/src/test/java/de/ozgcloud/antragsraum/ModularityTests.java
index 7d54ea70fee3ee21b459a0f583393b10d2d98d73..98da49dd5da79ee8fa42c60e89e6a25b3168f34f 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/ModularityTests.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/ModularityTests.java
@@ -26,6 +26,7 @@ import org.springframework.modulith.core.ApplicationModules;
 import org.springframework.modulith.docs.Documenter;
 
 class ModularityTests {
+
 	@Test
 	void verifyModularity() { // NOSONAR
 		ApplicationModules.of(AntragsRaumApplication.class);
@@ -39,4 +40,5 @@ class ModularityTests {
 		  .writeModulesAsPlantUml()
 		  .writeIndividualModulesAsPlantUml();
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/RootControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/RootControllerTest.java
index 471db6a140b1984afeb11161d887d857670a6744..d36b85060ea61957f668c835901d8cf3f3dab791 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/RootControllerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/RootControllerTest.java
@@ -39,6 +39,7 @@ class RootControllerTest {
 
 	@Nested
 	class TestWithBuildProperties {
+
 		@Mock
 		private BuildProperties buildProperties;
 
@@ -121,10 +122,12 @@ class RootControllerTest {
 
 			assertThat(root.isProduction()).isTrue();
 		}
+
 	}
 
 	@Nested
-	class TestWithOutBuildProperties {
+	class TestWithoutBuildProperties {
+
 		private final RootController rootController = new RootController(null);
 
 		@Test
@@ -175,5 +178,7 @@ class RootControllerTest {
 
 			assertThat(root.isProduction()).isTrue();
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/SecurityConfigurationTest.java b/server/src/test/java/de/ozgcloud/antragsraum/SecurityConfigurationTest.java
index cd4b8c89ddaed198489fb792692d79632c81731b..2642fbcdba7afa61d08f53b1f8ad79a67f2b372d 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/SecurityConfigurationTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/SecurityConfigurationTest.java
@@ -45,6 +45,7 @@ import de.ozgcloud.antragsraum.security.SecurityProvider;
 
 @ExtendWith(MockitoExtension.class)
 class SecurityConfigurationTest {
+
 	@Mock
 	private BayernIdSaml2Extension bayernIdSaml2Extension;
 
@@ -83,6 +84,7 @@ class SecurityConfigurationTest {
 
 	@Nested
 	class TestHttpSecurity {
+
 		private HttpSecurity httpSecurity;
 
 		@BeforeEach
@@ -123,10 +125,12 @@ class SecurityConfigurationTest {
 
 			verify(httpSecurity, times(2)).headers(any());
 		}
+
 	}
 
 	@Nested
 	class TestAuthenticationRequestResolver {
+
 		@Mock
 		private RelyingPartyRegistrationRepository registrations;
 
@@ -136,10 +140,12 @@ class SecurityConfigurationTest {
 
 			assertThat(authResolver).isInstanceOf(Saml2AuthenticationRequestResolver.class);
 		}
+
 	}
 
 	@Nested
 	class TestSamlFilterChain {
+
 		@Mock
 		HttpSecurity security;
 
@@ -166,10 +172,12 @@ class SecurityConfigurationTest {
 
 			verify(security).saml2Logout(any());
 		}
+
 	}
 
 	@Nested
 	class TestLogoutHandler {
+
 		@Test
 		void shouldCreateLogoutHandler() {
 			when(corsProperties.getLogoutSuccessUrl()).thenReturn("/");
@@ -178,25 +186,31 @@ class SecurityConfigurationTest {
 
 			assertThat(handler).isInstanceOf(AntragsraumLogoutSuccessHandler.class);
 		}
+
 	}
 
 	@Nested
 	class TestSuccessHandler {
+
 		@Test
 		void shouldCreateSuccessHandler() {
 			var handler = securityConfiguration.getSamlUrlAuthenticationSuccessHandler();
 
 			assertThat(handler).isInstanceOf(SamlUrlAuthenticationSuccessHandler.class);
 		}
+
 	}
 
 	@Nested
 	class TestCorsConfigurer {
+
 		@Test
 		void shouldCreateCorsConfigurer() {
 			var corsConfigurer = securityConfiguration.corsConfigurer();
 
 			assertThat(corsConfigurer).isInstanceOf(WebMvcConfigurer.class);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/SwaggerCorsConfigurationTest.java b/server/src/test/java/de/ozgcloud/antragsraum/SwaggerCorsConfigurationTest.java
index 100fa9c4b6109be7d324d81107e539eef4e3d00e..b52943a4745bc0cb894437002a7d24e075784bcf 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/SwaggerCorsConfigurationTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/SwaggerCorsConfigurationTest.java
@@ -21,18 +21,19 @@
  */
 package de.ozgcloud.antragsraum;
 
-import org.junit.jupiter.api.Test;
-
 import static org.assertj.core.api.Assertions.*;
 
+import org.junit.jupiter.api.Test;
+
 class SwaggerCorsConfigurationTest {
-    private final SwaggerCorsConfiguration configuration = new SwaggerCorsConfiguration();
 
-    @Test
-    void shouldCreateCorsFilter() {
-        var configSource = configuration.corsFilter();
+	private final SwaggerCorsConfiguration configuration = new SwaggerCorsConfiguration();
+
+	@Test
+	void shouldCreateCorsFilter() {
+		var configSource = configuration.corsFilter();
 
-        assertThat(configSource).isNotNull();
-    }
+		assertThat(configSource).isNotNull();
+	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/WebConfigurationTest.java b/server/src/test/java/de/ozgcloud/antragsraum/WebConfigurationTest.java
index 75d5c2033bc75fe6fd676e0a1a7568a0107d6b69..a5cad8c14c560fa416bf1e1c6950be1c53138bf8 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/WebConfigurationTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/WebConfigurationTest.java
@@ -29,6 +29,7 @@ import org.springframework.boot.web.client.RestTemplateBuilder;
 import org.springframework.web.client.RestTemplate;
 
 class WebConfigurationTest {
+
 	@Test
 	void shouldCreateRestTemplate() {
 		WebConfiguration configuration = new WebConfiguration();
@@ -36,4 +37,5 @@ class WebConfigurationTest {
 
 		assertThat(template).isNotNull();
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java
index 4506cc650b89cb9b2ca6c0c34b9f31145824736f..47bee689e55b261d618869330dbfc5e1d7dc2fba 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java
@@ -25,6 +25,7 @@ import static de.ozgcloud.antragsraum.attachments.OzgFileTestFactory.*;
 import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata;
 
 public class AntragraumGrpcFileMetadataTestFactory {
+
 	static AntragraumGrpcFileMetadata create() {
 		var file = new AntragraumGrpcFileMetadata();
 		file.setContentType(CONTENT_TYPE);
@@ -33,4 +34,5 @@ public class AntragraumGrpcFileMetadataTestFactory {
 
 		return file;
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java
index 784fa6e1fb2e74ff1a730a3d1cee59f67fbeff23..cbde318ddeb62a353de25626a1483505116fb646 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java
@@ -28,9 +28,11 @@ import lombok.NoArgsConstructor;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class AntragraumGrpcGetAttachmentMetadataResponseTestFactory {
+
 	static AntragraumGrpcGetAttachmentMetadataResponse create() {
 		var response = new AntragraumGrpcGetAttachmentMetadataResponse();
 		response.setFileMetadata(AntragraumGrpcFileMetadataTestFactory.create());
 		return response;
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java
index 5be8c6bce51110148ce61c128b48762bac4fc825..ab6e7d610e81a622a73e7c5c7717c406722cea94 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java
@@ -65,6 +65,7 @@ import de.ozgcloud.antragsraum.common.VirusFoundException;
   "ozgcloud.upload.blocked-content-types=application/vnd.microsoft.portable-executable"
 })
 public class FileControllerITCase {
+
 	@SpyBean
 	private FileController controller;
 
@@ -82,6 +83,7 @@ public class FileControllerITCase {
 
 	@Nested
 	class TestDownloadingFileContent {
+
 		@BeforeEach
 		void init() {
 			when(fileService.getFile(any(FileIdentificationData.class))).thenReturn(OzgFileTestFactory.create());
@@ -92,10 +94,12 @@ public class FileControllerITCase {
 		void shouldGetFileContent() throws Exception {
 			performRequest().andExpect(status().isOk());
 		}
+
 	}
 
 	@Nested
 	class TestFileNotFoundError {
+
 		@BeforeEach
 		void init() {
 			doThrow(NotFoundException.class).when(fileService).getFile(any(FileIdentificationData.class));
@@ -106,10 +110,12 @@ public class FileControllerITCase {
 		void shouldReturn404() throws Exception {
 			performRequest().andExpect(status().isNotFound());
 		}
+
 	}
 
 	@Nested
 	class TestInternalError {
+
 		@Test
 		@WithMockUser
 		void shouldReturn500ByTechnicalException() throws Exception {
@@ -125,10 +131,12 @@ public class FileControllerITCase {
 
 			performRequest().andExpect(status().isInternalServerError());
 		}
+
 	}
 
 	@Nested
 	class TestNotAcceptable {
+
 		@BeforeEach
 		void init() {
 			doThrow(VirusFoundException.class).when(fileService).getFile(any(FileIdentificationData.class));
@@ -139,6 +147,7 @@ public class FileControllerITCase {
 		void shouldReturn406ByVirusFoundException() throws Exception {
 			performRequest().andExpect(status().isNotAcceptable());
 		}
+
 	}
 
 	ResultActions performRequest() throws Exception {
@@ -150,6 +159,7 @@ public class FileControllerITCase {
 
 	@Nested
 	class TestFileUpload {
+
 		private final CompletableFuture<String> fileIdFuture = CompletableFuture.completedFuture(FILE_ID);
 
 		@BeforeEach
@@ -200,5 +210,7 @@ public class FileControllerITCase {
 			  .andExpect(request().asyncStarted())
 			  .andReturn();
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java
index 7fea74c9db5808ae1514c66bd67118290a541748..00ab3bca340375fc9dffc58798ca3d28f905128d 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java
@@ -45,6 +45,7 @@ import de.ozgcloud.antragsraum.common.InvalidFileTypeException;
 
 @ExtendWith(MockitoExtension.class)
 class FileControllerTest {
+
 	@Spy
 	@InjectMocks
 	private FileController fileController;
@@ -57,6 +58,7 @@ class FileControllerTest {
 
 	@Nested
 	class TestGetFileContent {
+
 		@BeforeEach
 		void init() {
 			lenient().when(fileService.getFile(any(FileIdentificationData.class))).thenReturn(OzgFileTestFactory.create());
@@ -110,10 +112,12 @@ class FileControllerTest {
 
 			assertThat(contentDisposition).hasToString("attachment; filename=\"" + FILE_NAME + "\"");
 		}
+
 	}
 
 	@Nested
 	class TestGetFile {
+
 		private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create();
 
 		@Test
@@ -122,10 +126,12 @@ class FileControllerTest {
 
 			verify(fileService).getFile(FILE_IDENTIFICATION_DATA);
 		}
+
 	}
 
 	@Nested
 	class TestFileUpload {
+
 		private final CompletableFuture<String> fileIdFuture = CompletableFuture.completedFuture(FILE_ID);
 
 		@Mock
@@ -143,10 +149,12 @@ class FileControllerTest {
 
 			verify(fileService).upload(anyString(), anyString(), any(MultipartFile.class));
 		}
+
 	}
 
 	@Nested
 	class TestFileUploadExceptions {
+
 		@Mock
 		private MultipartFile multipartFile;
 
@@ -169,5 +177,7 @@ class FileControllerTest {
 			assertThatExceptionOfType(InvalidFileTypeException.class).isThrownBy(
 			  () -> fileController.uploadFile(VORGANG_ID, NACHRICHT_EVENT_ID, multipartFile));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java
index 006f96223eda9846b73a87120795f8541414d0c1..fd8ee4a3591aa11771c225d90c0223461a77da4d 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java
@@ -48,4 +48,5 @@ public class FileControllerTestConfiguration {
 	RestClient restClient() {
 		return restClientBuilder().build();
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java
index 4f8bbbf0b30bda4191a595694ac68b9b090e130b..a516925dbe4259f3e7c2c907e3fe8eeec764fb87 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java
@@ -42,6 +42,7 @@ import lombok.extern.log4j.Log4j2;
 @SpringJUnitConfig(classes = { FileRemoteServiceTestConfiguration.class })
 @Log4j2
 public class FileRemoteServiceITCase {
+
 	private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create();
 	private static final String ADDRESS = "http://localhost:8088";
 
@@ -62,6 +63,7 @@ public class FileRemoteServiceITCase {
 				fail(e.getMessage());
 			}
 		}
+
 	}
 
 	@Nested
@@ -82,6 +84,7 @@ public class FileRemoteServiceITCase {
 
 			assertThat(file).isEqualTo(OzgFileTestFactory.create());
 		}
+
 	}
 
 	@Nested
@@ -95,5 +98,7 @@ public class FileRemoteServiceITCase {
 
 			assertThat(out.size()).isEqualTo(DATA.length);
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java
index a519703c1c6ee78029865dbf8aecadc4525e50b9..6fb29ab1e6dd0daa9c9455f7995b72ebd90c865b 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java
@@ -44,6 +44,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata;
 
 @ExtendWith(MockitoExtension.class)
 class FileRemoteServiceTest {
+
 	private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create();
 
 	@Spy
@@ -58,6 +59,7 @@ class FileRemoteServiceTest {
 
 	@Nested
 	class TestLoadingFile {
+
 		@BeforeEach
 		void init() {
 			lenient().when(restClient.getFileMetadata(any(FileIdentificationData.class), anyString())).thenReturn(
@@ -112,10 +114,12 @@ class FileRemoteServiceTest {
 
 			assertThat(file).isNull();
 		}
+
 	}
 
 	@Nested
 	class TestDownloadFileContent {
+
 		private final ByteArrayOutputStream output = new ByteArrayOutputStream();
 
 		@Test
@@ -124,15 +128,19 @@ class FileRemoteServiceTest {
 
 			verify(restClient).downloadFileContent(eq(FILE_IDENTIFICATION_DATA), eq(CHANNEL_ADDRESS), any(OutputStream.class));
 		}
+
 	}
 
 	@Nested
 	class TestUploadFile {
+
 		@Test
 		void shouldCallRestClient() {
 			remoteService.uploadFile(OzgUploadFileTestFactory.create(), CHANNEL_ADDRESS);
 
 			verify(restClient).uploadFile(any(OzgUploadFile.class), eq(CHANNEL_ADDRESS), any());
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java
index abbf945050ddad9e86310c2b1525351c4de070a7..daf5380aa2f33a07043103cf3e95bedc55acc157 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java
@@ -38,6 +38,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService;
 	classes = { FileControllerTestConfiguration.class, FileController.class, FileRestClientTestConfiguration.class }))
 @Configuration
 public class FileRemoteServiceTestConfiguration {
+
 	@Bean
 	FileRestClient fileRestClient() {
 		return new StubFileRestClient();
@@ -60,4 +61,5 @@ public class FileRemoteServiceTestConfiguration {
 
 	@MockBean
 	NachrichtEventService nachrichtEventService;
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java
index dc60cc51bac544490fae72ff1bdd86fdfdf46573..8e8e65537102597878a5bf48c581045216031218 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java
@@ -56,6 +56,7 @@ import de.ozgcloud.antragsraum.security.UserTestFactory;
 @SpringJUnitConfig(classes = { FileRestClientTestConfiguration.class })
 @RestClientTest(FileRestClient.class)
 class FileRestClientTest {
+
 	private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create();
 	static final String ADDRESS = "http://localhost:8382";
 
@@ -107,6 +108,7 @@ class FileRestClientTest {
 				  () -> fileRestClient.getFileMetadata(FILE_IDENTIFICATION_DATA, ADDRESS + GET_FILE_CONTENT_API));
 			}
 		}
+
 	}
 
 	@Nested
@@ -133,6 +135,7 @@ class FileRestClientTest {
 
 			assertThat(fileId).withFailMessage(NO_FILE_ID_RECEIVED_MESSAGE).isCompletedExceptionally();
 		}
+
 	}
 
 	@Nested
@@ -181,5 +184,7 @@ class FileRestClientTest {
 					mock(ByteArrayOutputStream.class)));
 			}
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java
index 73d964c9b5375a27e8ba58413ea843d2324bb41a..cf12190d48fabd31ab5b7ba131eedb67e2382711 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java
@@ -41,6 +41,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService;
 	classes = { FileControllerTestConfiguration.class, FileController.class, FileRemoteServiceTestConfiguration.class }))
 @Configuration
 public class FileRestClientTestConfiguration {
+
 	@MockBean
 	FileService fileService;
 
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java
index 7abb90873e0ec47906f26a79f3b012e3499cb057..119f61c30282fa7047c45aff9e23ccae74a73df7 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java
@@ -47,6 +47,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService;
 import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
 
 class FileServiceTest {
+
 	private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create();
 
 	@Spy
@@ -64,6 +65,7 @@ class FileServiceTest {
 
 	@Nested
 	class TestFileUpload {
+
 		@Spy
 		private MultipartFile multipartFile = OzgUploadFileTestFactory.MULTIPART_FILE;
 
@@ -72,7 +74,7 @@ class FileServiceTest {
 			when(remoteService.uploadFile(any(OzgUploadFile.class), anyString())).thenReturn(
 			  CompletableFuture.completedFuture(FILE_ID));
 
-			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.createNachrichtEvent());
+			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.create());
 		}
 
 		@Test
@@ -92,29 +94,33 @@ class FileServiceTest {
 				fail("Exception happened! " + e.getMessage());
 			}
 		}
+
 	}
 
 	@Nested
 	class TestExceptionWhenSendingFile {
+
 		@Spy
 		private final MultipartFile multipartFile = OzgUploadFileTestFactory.MULTIPART_FILE;
 
 		@Test
 		void shouldThrowTechnicalExceptionOnUpload() {
-			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.createNachrichtEvent());
+			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.create());
 			doThrow(TechnicalException.class).when(remoteService).uploadFile(any(), anyString());
 
 			assertThatExceptionOfType(TechnicalException.class).isThrownBy(
 			  () -> fileService.upload(VORGANG_ID, NACHRICHT_EVENT_ID, multipartFile));
 		}
+
 	}
 
 	@Nested
 	class TestLoadingFile {
+
 		@BeforeEach
 		void init() {
 			when(remoteService.getFile(any(FileIdentificationData.class), anyString())).thenReturn(OzgFileTestFactory.create());
-			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.createNachrichtEvent());
+			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.create());
 		}
 
 		@Test
@@ -123,13 +129,15 @@ class FileServiceTest {
 
 			assertThat(file).isNotNull();
 		}
+
 	}
 
 	@Nested
 	class TestDownloadingFileContent {
+
 		@BeforeEach
 		void init() {
-			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.createNachrichtEvent());
+			when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.create());
 		}
 
 		@Test
@@ -138,10 +146,12 @@ class FileServiceTest {
 
 			verify(remoteService).downloadFileContent(any(FileIdentificationData.class), anyString(), any(OutputStream.class));
 		}
+
 	}
 
 	@Nested
 	class TestVirusScanning {
+
 		@Mock
 		private MultipartFile multipartFile;
 
@@ -152,5 +162,7 @@ class FileServiceTest {
 			assertThatExceptionOfType(VirusFoundException.class).isThrownBy(
 			  () -> fileService.createUploadFile(VORGANG_ID, multipartFile));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java
index 97ef3384b172d94a275d632bc07c5c5e15c3f4d1..0fdaccce90cb9d55f58d6430b38c0c3b30bca679 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java
@@ -36,6 +36,7 @@ import org.springframework.util.unit.DataSize;
 
 @ExtendWith(MockitoExtension.class)
 class FileValidatorTest {
+
 	static final MockMultipartFile TEST_FILE = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA);
 	static final MockMultipartFile TEST_INVALID_FILE = new MockMultipartFile("file", FILE_NAME, INVALID_CONTENT_TYPE, DATA);
 	static final MockMultipartFile TEST_TOO_LARGE_FILE = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, new byte[150_000_000]);
@@ -48,6 +49,7 @@ class FileValidatorTest {
 
 	@Nested
 	class TestFileSizeIsValid {
+
 		@BeforeEach
 		void init() {
 			when(fileProperties.getMaxFileSize()).thenReturn(DataSize.ofMegabytes(100));
@@ -66,10 +68,12 @@ class FileValidatorTest {
 
 			assertThat(result).isFalse();
 		}
+
 	}
 
 	@Nested
 	class TestFileContentTypeIsValid {
+
 		@Test
 		void shouldBeValid() {
 			when(fileProperties.getBlockedContentTypes()).thenReturn(new String[] { INVALID_CONTENT_TYPE });
@@ -94,10 +98,12 @@ class FileValidatorTest {
 
 			assertThat(result).isFalse();
 		}
+
 	}
 
 	@Nested
 	class TestIsValid {
+
 		@BeforeEach
 		void init() {
 			when(fileProperties.getMaxFileSize()).thenReturn(DataSize.ofMegabytes(100));
@@ -127,5 +133,7 @@ class FileValidatorTest {
 
 			assertThat(result).isTrue();
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java
index 0bf371ff7788306ad627870860cc620d1de8e438..ba6a55b68a5dee4ffebe276fb80faa5aa5793fcb 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java
@@ -37,6 +37,7 @@ class OzgFileMapperTest {
 
 	@Nested
 	class TestMappingGrpcOzgFile {
+
 		private final AntragraumGrpcFileMetadata grpcOzgFile = AntragraumGrpcFileMetadataTestFactory.create();
 
 		@Test
@@ -66,6 +67,7 @@ class OzgFileMapperTest {
 
 			assertThat(file.id()).isEqualTo(FILE_ID);
 		}
+
 	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java
index 97c8a98d5f72da9a2e5c11f5f2fdafaee13cfb35..6411af33509eb604e6c848a7fce9d934e2630886 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java
@@ -25,6 +25,7 @@ import java.util.UUID;
 import org.apache.http.entity.ContentType;
 
 public class OzgFileTestFactory {
+
 	static final String FILE_ID = UUID.randomUUID().toString();
 	static final String VORGANG_ID = UUID.randomUUID().toString();
 	static final String CONTENT_TYPE = ContentType.APPLICATION_OCTET_STREAM.toString();
@@ -48,4 +49,5 @@ public class OzgFileTestFactory {
 		  .fileSize(FILE_SIZE)
 		  .fileName(FILE_NAME);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java
index 040bdd6d9660e967369f342433827aed70f0726e..39926754f1a57e1d727d59eb4c9e07007e7fa8f7 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java
@@ -33,6 +33,7 @@ import org.springframework.http.MediaType;
 import org.springframework.web.multipart.MultipartFile;
 
 public class OzgUploadFileTestFactory {
+
 	public final static MultipartFile MULTIPART_FILE = new TestMultipartFile();
 
 	static OzgUploadFile create() {
@@ -46,6 +47,7 @@ public class OzgUploadFileTestFactory {
 	}
 
 	static class TestMultipartFile implements MultipartFile {
+
 		@Override
 		public @NotNull String getName() {
 			return "test.txt";
@@ -87,5 +89,7 @@ public class OzgUploadFileTestFactory {
 				fos.write(DATA);
 			}
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java
index 46a80b56b36b90c082fbe3948e98668bb4eeb0c4..613f3657235e2f96a928369f6e7ea0cec2849791 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java
@@ -31,6 +31,7 @@ import java.util.concurrent.CompletableFuture;
 import de.ozgcloud.antragsraum.proxy.AntragraumGrpcGetAttachmentMetadataResponse;
 
 class StubFileRestClient extends FileRestClient {
+
 	public StubFileRestClient() {
 		super(null);
 	}
@@ -50,4 +51,5 @@ class StubFileRestClient extends FileRestClient {
 			throw new RuntimeException(e);
 		}
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java
index 2ffd3a934b5ff641a4b8a27446825eae5193162f..2e28a158933aacf12b6768ab1ab1ea7a978003d5 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java
@@ -22,11 +22,9 @@
 
 package de.ozgcloud.antragsraum.attachments;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
@@ -45,78 +43,82 @@ import org.springframework.web.client.RestTemplate;
 
 @ExtendWith(MockitoExtension.class)
 public class VirusScannerClientTest {
-    private static final String CLAMAV_SCAN_URL = "TestClamAVScanUrl";
-    private static final String FILE_NAME = "MockFileName.pdf";
-
-    @Spy
-    @InjectMocks
-    private VirusScannerClient virusScannerClient;
-
-    @Mock
-    private RestTemplate restTemplate;
-
-    @BeforeEach
-    void setup() {
-        ReflectionTestUtils.setField(virusScannerClient, "clamAVScanUrl", CLAMAV_SCAN_URL);
-    }
-
-    @Nested
-    class TestVirusScanNotSuccessful {
-
-        @Test
-        void shouldThrowRuntimeExceptionOnClamAVCall() {
-            var file = new MockMultipartFile(FILE_NAME, new byte[0]);
-            var status = HttpStatus.INTERNAL_SERVER_ERROR;
-            var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status);
-
-            when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
-                eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
-
-            assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file));
-        }
-
-        @Test
-        void shouldThrowRuntimeExceptionOnScan() {
-            var file = new MockMultipartFile(FILE_NAME, new byte[0]);
-            var status = HttpStatus.OK;
-            var response =
-                new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(false, false), status);
-
-            when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
-                eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
-
-            assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file));
-        }
-    }
-
-    @Nested
-    class TestVirusScanSuccessful {
-
-        @Test
-        void shouldHaveTwoVirusesInResult() {
-            var file = new MockMultipartFile(FILE_NAME, new byte[0]);
-            var status = HttpStatus.OK;
-            var response =
-                new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(true, true), status);
-
-            when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
-                eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
-
-            var result = virusScannerClient.scan(file);
-            assertThat(result).hasSize(2);
-        }
-
-        @Test
-        void shouldHaveEmptyResult() {
-            var file = new MockMultipartFile(FILE_NAME, new byte[0]);
-            var status = HttpStatus.OK;
-            var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status);
-
-            when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
-                eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
-
-            var result = virusScannerClient.scan(file);
-            assertThat(result).isEmpty();
-        }
-    }
+
+	private static final String CLAMAV_SCAN_URL = "TestClamAVScanUrl";
+	private static final String FILE_NAME = "MockFileName.pdf";
+
+	@Spy
+	@InjectMocks
+	private VirusScannerClient virusScannerClient;
+
+	@Mock
+	private RestTemplate restTemplate;
+
+	@BeforeEach
+	void setup() {
+		ReflectionTestUtils.setField(virusScannerClient, "clamAVScanUrl", CLAMAV_SCAN_URL);
+	}
+
+	@Nested
+	class TestVirusScanNotSuccessful {
+
+		@Test
+		void shouldThrowRuntimeExceptionOnClamAVCall() {
+			var file = new MockMultipartFile(FILE_NAME, new byte[0]);
+			var status = HttpStatus.INTERNAL_SERVER_ERROR;
+			var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status);
+
+			when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
+			  eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
+
+			assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file));
+		}
+
+		@Test
+		void shouldThrowRuntimeExceptionOnScan() {
+			var file = new MockMultipartFile(FILE_NAME, new byte[0]);
+			var status = HttpStatus.OK;
+			var response =
+			  new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(false, false), status);
+
+			when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
+			  eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
+
+			assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file));
+		}
+
+	}
+
+	@Nested
+	class TestVirusScanSuccessful {
+
+		@Test
+		void shouldHaveTwoVirusesInResult() {
+			var file = new MockMultipartFile(FILE_NAME, new byte[0]);
+			var status = HttpStatus.OK;
+			var response =
+			  new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(true, true), status);
+
+			when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
+			  eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
+
+			var result = virusScannerClient.scan(file);
+			assertThat(result).hasSize(2);
+		}
+
+		@Test
+		void shouldHaveEmptyResult() {
+			var file = new MockMultipartFile(FILE_NAME, new byte[0]);
+			var status = HttpStatus.OK;
+			var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status);
+
+			when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class),
+			  eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response);
+
+			var result = virusScannerClient.scan(file);
+			assertThat(result).isEmpty();
+		}
+
+	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java
index 29809c1e1da9b64940b679d471413bf465392420..3f594577981f32d0f927e0a66cddebac3bd281a8 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java
@@ -23,25 +23,27 @@
 package de.ozgcloud.antragsraum.attachments;
 
 class VirusScannerClientTestFactory {
-    static final String FILE_NAME = "TestFileName.pdf";
 
-    static VirusScannerClient.VirusScanResponse createVirusScanResponse() {
-        return createVirusScanResponse(true, false);
-    }
+	static final String FILE_NAME = "TestFileName.pdf";
 
-    static VirusScannerClient.VirusScanResponse createVirusScanResponse(boolean successful, boolean infected) {
-        VirusScannerClient.VirusScanResult result = new VirusScannerClient.VirusScanResult();
-        result.setName(FILE_NAME);
-        result.setInfected(infected);
-        result.setViruses(infected ? new String[] {"VirusA", "VirusB"} : new String[] {});
+	static VirusScannerClient.VirusScanResponse createVirusScanResponse() {
+		return createVirusScanResponse(true, false);
+	}
 
-        VirusScannerClient.VirusScanData data = new VirusScannerClient.VirusScanData();
-        data.setResult(new VirusScannerClient.VirusScanResult[] {result});
+	static VirusScannerClient.VirusScanResponse createVirusScanResponse(boolean successful, boolean infected) {
+		VirusScannerClient.VirusScanResult result = new VirusScannerClient.VirusScanResult();
+		result.setName(FILE_NAME);
+		result.setInfected(infected);
+		result.setViruses(infected ? new String[] { "VirusA", "VirusB" } : new String[] {});
 
-        VirusScannerClient.VirusScanResponse response = new VirusScannerClient.VirusScanResponse();
-        response.setData(data);
-        response.setSuccess(successful);
+		VirusScannerClient.VirusScanData data = new VirusScannerClient.VirusScanData();
+		data.setResult(new VirusScannerClient.VirusScanResult[] { result });
+
+		VirusScannerClient.VirusScanResponse response = new VirusScannerClient.VirusScanResponse();
+		response.setData(data);
+		response.setSuccess(successful);
+
+		return response;
+	}
 
-        return response;
-    }
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/AntragraumproxyGrpcCommandTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/command/AntragraumproxyGrpcCommandTestFactory.java
index 0221cc6cf0132dfa0ccaacf2f759b8ec3f1a25a1..e0262ceba979d63b5f76a82a8a77a64e67814879 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/AntragraumproxyGrpcCommandTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/AntragraumproxyGrpcCommandTestFactory.java
@@ -30,6 +30,7 @@ import lombok.NoArgsConstructor;
 
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 class AntragraumproxyGrpcCommandTestFactory {
+
 	public static final String ID = CommandTestFactory.ID;
 	static final String CREATED_BY = UUID.randomUUID().toString();
 	static final String STATUS = CommandTestFactory.STATUS;
@@ -45,4 +46,5 @@ class AntragraumproxyGrpcCommandTestFactory {
 		command.setStatus(STATUS);
 		return command;
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerITCase.java
index c098e33402df2c5f57766133ea662e033f2c11b0..4e35daad68c1c58a6bbf4d5bf02fb9c43b359e3f 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerITCase.java
@@ -46,6 +46,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
 @SpringJUnitConfig(classes = { CommandControllerTestConfiguration.class })
 public class CommandControllerITCase {
+
 	@SpyBean
 	private CommandController commandController;
 
@@ -57,9 +58,10 @@ public class CommandControllerITCase {
 
 	@Nested
 	class TestGetCommand {
+
 		@BeforeEach
 		void init() {
-			when(commandService.getCommand(CommandTestFactory.ID, NachrichtEventTestFactory.ID)).thenReturn(CommandTestFactory.createCommand());
+			when(commandService.getCommand(CommandTestFactory.ID, NachrichtEventTestFactory.ID)).thenReturn(CommandTestFactory.create());
 		}
 
 		@Test
@@ -96,5 +98,7 @@ public class CommandControllerITCase {
 			  get(CommandController.PATH + "/command/" + CommandTestFactory.ID + "/" + NachrichtEventTestFactory.ID)
 				.contentType(MediaType.APPLICATION_JSON).characterEncoding(Charset.defaultCharset()));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTest.java
index 4506a65dbd117175714cbb81faa648938dddff2f..ae25cb8b8aff51bff1641b9f5959a4807eb21d37 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTest.java
@@ -37,6 +37,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
 
 @ExtendWith(MockitoExtension.class)
 class CommandControllerTest {
+
 	@Spy
 	@InjectMocks
 	private CommandController commandController;
@@ -46,9 +47,10 @@ class CommandControllerTest {
 
 	@Nested
 	class TestGetCommand {
+
 		@BeforeEach
 		void init() {
-			when(commandService.getCommand(CommandTestFactory.ID, NachrichtEventTestFactory.ID)).thenReturn(CommandTestFactory.createCommand());
+			when(commandService.getCommand(CommandTestFactory.ID, NachrichtEventTestFactory.ID)).thenReturn(CommandTestFactory.create());
 		}
 
 		@Test
@@ -64,5 +66,7 @@ class CommandControllerTest {
 
 			assertThat(result).isInstanceOf(Command.class);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTestConfiguration.java
index a2d0064a158a0e4f45f9e96485a0376792bd06c8..f3d9409416143b4900cbbca3e1c7be1640cbeab5 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandControllerTestConfiguration.java
@@ -39,6 +39,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 	classes = { CommandRestClientTestConfiguration.class, CommandRemoteServiceTestConfiguration.class }))
 @Configuration
 public class CommandControllerTestConfiguration {
+
 	@Bean
 	CommandRestClient commandRestClient() {
 		CommandRestClient restClient = mock(CommandRestClient.class);
@@ -48,4 +49,5 @@ public class CommandControllerTestConfiguration {
 
 		return restClient;
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandMapperTest.java
index ee9fb45a00233b7a08b60ce17135f73cab983fe3..7b99cc596b8267862aaefd85d478b2be5b250502 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandMapperTest.java
@@ -25,47 +25,54 @@ import static org.assertj.core.api.Assertions.*;
 
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
 
 import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcCommand;
 
 class CommandMapperTest {
+
+	private final CommandMapper mapper = Mappers.getMapper(CommandMapper.class);
+
 	@Nested
-	class TestFromGrpcCommand {
-		private final AntragraumproxyGrpcCommand restCommand = CommandTestFactory.createRestCommand();
+	class TestFromRestCommand {
+
+		private final AntragraumproxyGrpcCommand restCommand = GrpcCommandTestFactory.create();
 
 		@Test
 		void shouldMapCommandId() {
-			var command = CommandMapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
+			var command = mapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
 
 			assertThat(command.id()).isEqualTo(CommandTestFactory.ID);
 		}
 
 		@Test
 		void shouldMapNachrichtEventId() {
-			var command = CommandMapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
+			var command = mapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
 
 			assertThat(command.nachrichtEventId()).isEqualTo(CommandTestFactory.NACHRICHT_EVENT_ID);
 		}
 
 		@Test
 		void shouldMapStatus() {
-			var command = CommandMapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
+			var command = mapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
 
 			assertThat(command.status()).isEqualTo(CommandTestFactory.STATUS);
 		}
 
 		@Test
 		void shouldMapCreatedAt() {
-			var command = CommandMapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
+			var command = mapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
 
 			assertThat(command.createdAt()).isEqualTo(CommandTestFactory.CREATED_AT_DATE);
 		}
 
 		@Test
 		void shouldMapFinishedAt() {
-			var command = CommandMapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
+			var command = mapper.fromRestCommand(restCommand, CommandTestFactory.NACHRICHT_EVENT_ID);
 
 			assertThat(command.finishedAt()).isEqualTo(CommandTestFactory.FINISHED_AT_DATE);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandReferenceTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandReferenceTestFactory.java
index 1dfbd06d5d538f4e3bbc9c2037ab6f2e715d0257..76e0b6a45f33470ecd378c5559286536c6e0eb97 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandReferenceTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandReferenceTestFactory.java
@@ -24,6 +24,7 @@ package de.ozgcloud.antragsraum.command;
 import java.util.UUID;
 
 public class CommandReferenceTestFactory {
+
 	public static final String ID = UUID.randomUUID().toString();
 	public static final String NACHRICHT_EVENT_ID = UUID.randomUUID().toString();
 
@@ -36,4 +37,5 @@ public class CommandReferenceTestFactory {
 		  .id(ID)
 		  .nachrichtEventId(NACHRICHT_EVENT_ID);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceITCase.java
index 180813913c99c8814157a618ce77ca2b1d953ca4..7f4425defaae4bb7f1cceb61b7ddb31c5ec826ad 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceITCase.java
@@ -41,6 +41,7 @@ import lombok.extern.log4j.Log4j2;
 @DirtiesContext
 @Log4j2
 class CommandRemoteServiceITCase {
+
 	private static final String ADDRESS = "http://localhost:8080";
 
 	@SpyBean
@@ -48,7 +49,8 @@ class CommandRemoteServiceITCase {
 
 	@Nested
 	class TestGetCommand {
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEventBuilder().address(ADDRESS).build();
+
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createBuilder().address(ADDRESS).build();
 
 		@BeforeEach
 		void setup() {
@@ -98,5 +100,7 @@ class CommandRemoteServiceITCase {
 
 			assertThat(command.finishedAt()).isEqualTo(CommandTestFactory.FINISHED_AT_DATE);
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTest.java
index 0e015886e2bf1122a211ccd0ae926e9bdcaf2b83..6dbc661203bd015c6332bbd683f65b45e5bc621d 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTest.java
@@ -36,9 +36,11 @@ import org.mockito.junit.jupiter.MockitoExtension;
 
 import de.ozgcloud.antragsraum.common.AddressNotFoundException;
 import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
+import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcCommand;
 
 @ExtendWith(MockitoExtension.class)
 public class CommandRemoteServiceTest {
+
 	@Spy
 	@InjectMocks
 	private CommandRemoteService commandRemoteService;
@@ -46,23 +48,30 @@ public class CommandRemoteServiceTest {
 	@Mock
 	private CommandRestClient commandRestClient;
 
+	@Mock
+	private CommandMapper commandMapper;
+
 	@Nested
 	class TestGetCommand {
+
 		@BeforeEach
 		void init() {
-			when(commandRestClient.getCommand(anyString(), anyString())).thenReturn(CommandTestFactory.createRestCommand());
+			when(commandRestClient.getCommand(anyString(), anyString())).thenReturn(GrpcCommandTestFactory.create());
+			when(commandMapper.fromRestCommand(any(AntragraumproxyGrpcCommand.class), anyString())).thenReturn(CommandTestFactory.create());
 		}
 
 		@Test
 		void shouldLoadCommand() {
-			var command = commandRemoteService.getCommand(NachrichtEventTestFactory.createNachrichtEvent(), CommandTestFactory.ID);
+			var command = commandRemoteService.getCommand(NachrichtEventTestFactory.create(), CommandTestFactory.ID);
 
 			assertThat(command).isInstanceOf(Command.class);
 		}
+
 	}
 
 	@Nested
 	class TestNoTargetAddressAvailable {
+
 		@BeforeEach
 		void init() {
 			doThrow(AddressNotFoundException.class).when(commandRestClient).getCommand(anyString(), anyString());
@@ -70,10 +79,12 @@ public class CommandRemoteServiceTest {
 
 		@Test
 		void shouldThrowAddressNotFoundException() {
-			var nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+			var nachrichtEvent = NachrichtEventTestFactory.create();
 
 			assertThatExceptionOfType(AddressNotFoundException.class).isThrownBy(
 			  () -> commandRemoteService.getCommand(nachrichtEvent, CommandTestFactory.ID));
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTestConfiguration.java
index 7287f61a8b30a51d20ffb55778b98e0b3d8bd187..644d54ff8bcdf41e5acefcb5ee46d81a6c0fbcbd 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRemoteServiceTestConfiguration.java
@@ -40,7 +40,8 @@ public class CommandRemoteServiceTestConfiguration {
 	private NachrichtEventService nachrichtEventService;
 
 	@Bean
-	CommandRemoteService commandRemoteService(@Autowired CommandRestClient commandRestClient) {
-		return new CommandRemoteService(commandRestClient);
+	CommandRemoteService commandRemoteService(@Autowired CommandRestClient commandRestClient, @Autowired CommandMapper commandMapper) {
+		return new CommandRemoteService(commandRestClient, commandMapper);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRestClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRestClientTest.java
index 0a99eff18ed770c6f34b8d255f3542aede8d704d..119ecda83dff1969b4d40dd34a62621d6c9f9d74 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRestClientTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandRestClientTest.java
@@ -44,6 +44,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @SpringJUnitConfig(classes = { CommandRestClientTestConfiguration.class })
 @RestClientTest(CommandRestClient.class)
 class CommandRestClientTest {
+
 	final static String ADDRESS = "http://localhost:8382";
 	private static final String COMMAND_ID = UUID.randomUUID().toString();
 
@@ -76,4 +77,5 @@ class CommandRestClientTest {
 
 		assertThat(command.getId()).isEqualTo(AntragraumproxyGrpcCommandTestFactory.ID);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandServiceTest.java
index 9b92ed59efcc385dc9ce8058e79af86d101e962e..9e4fff94316261f2d5fdb6ca5d4d17b37ea3e066 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandServiceTest.java
@@ -39,6 +39,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
 
 @ExtendWith(MockitoExtension.class)
 class CommandServiceTest {
+
 	@Spy
 	@InjectMocks
 	private CommandService commandService;
@@ -49,11 +50,12 @@ class CommandServiceTest {
 
 	@Nested
 	class TestGetCommand {
+
 		@BeforeEach
 		void init() {
-			final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+			final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create();
 			when(nachrichtEventService.getNachrichtEventById(NachrichtEventTestFactory.ID)).thenReturn(nachrichtEvent);
-			when(commandRemoteService.getCommand(nachrichtEvent, CommandTestFactory.ID)).thenReturn(CommandTestFactory.createCommand());
+			when(commandRemoteService.getCommand(nachrichtEvent, CommandTestFactory.ID)).thenReturn(CommandTestFactory.create());
 		}
 
 		@Test
@@ -62,5 +64,7 @@ class CommandServiceTest {
 
 			assertThat(result).isInstanceOf(Command.class);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandTestFactory.java
index d76c60e82c839b8f2c17037e00d80ee653826ec0..b732c1bbf7491761ca74909b78254395b48ee26c 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/command/CommandTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/CommandTestFactory.java
@@ -24,9 +24,8 @@ package de.ozgcloud.antragsraum.command;
 import java.time.ZonedDateTime;
 import java.util.UUID;
 
-import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcCommand;
-
 public class CommandTestFactory {
+
 	public static final String ID = UUID.randomUUID().toString();
 	static final String NACHRICHT_EVENT_ID = UUID.randomUUID().toString();
 	static final String STATUS = "FINISHED";
@@ -35,11 +34,11 @@ public class CommandTestFactory {
 	static final String FINISHED_AT = "2024-06-24T08:10:13.076Z";
 	static final long FINISHED_AT_DATE = ZonedDateTime.parse(FINISHED_AT).toEpochSecond() * 1000;
 
-	static Command createCommand() {
-		return createCommandBuilder().build();
+	static Command create() {
+		return createBuilder().build();
 	}
 
-	static Command.CommandBuilder createCommandBuilder() {
+	static Command.CommandBuilder createBuilder() {
 		return Command.builder()
 		  .id(ID)
 		  .nachrichtEventId(NACHRICHT_EVENT_ID)
@@ -48,12 +47,4 @@ public class CommandTestFactory {
 		  .finishedAt(FINISHED_AT_DATE);
 	}
 
-	public static AntragraumproxyGrpcCommand createRestCommand() {
-		var command = new AntragraumproxyGrpcCommand();
-		command.setId(ID);
-		command.setStatus(STATUS);
-		command.setCreatedAt(CREATED_AT);
-		command.setFinishedAt(FINISHED_AT);
-		return command;
-	}
 }
diff --git a/server/src/main/java/de/ozgcloud/antragsraum/common/SendTimeoutException.java b/server/src/test/java/de/ozgcloud/antragsraum/command/GrpcCommandTestFactory.java
old mode 100755
new mode 100644
similarity index 70%
rename from server/src/main/java/de/ozgcloud/antragsraum/common/SendTimeoutException.java
rename to server/src/test/java/de/ozgcloud/antragsraum/command/GrpcCommandTestFactory.java
index 88db4a8b78b738b2ecddffd6c43a4d703e40ddf1..94d697dc208efbb84e888c3bafe256bacc704462
--- a/server/src/main/java/de/ozgcloud/antragsraum/common/SendTimeoutException.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/command/GrpcCommandTestFactory.java
@@ -19,13 +19,18 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+package de.ozgcloud.antragsraum.command;
 
-package de.ozgcloud.antragsraum.common;
+import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcCommand;
 
-public class SendTimeoutException extends RuntimeException {
-    private static final String MESSAGE_TEMPLATE = "A timeout sending a nachricht happened. Command %s did not finish in time! Message: %s";
+public class GrpcCommandTestFactory {
+
+	public static AntragraumproxyGrpcCommand create() {
+		return new AntragraumproxyGrpcCommand()
+		  .id(CommandTestFactory.ID)
+		  .status(CommandTestFactory.STATUS)
+		  .createdAt(CommandTestFactory.CREATED_AT)
+		  .finishedAt(CommandTestFactory.FINISHED_AT);
+	}
 
-    public SendTimeoutException(String commandId, Throwable ex) {
-        super(String.format(MESSAGE_TEMPLATE, commandId, ex.getMessage()), ex);
-    }
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/AddressNotFoundExceptionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/AddressNotFoundExceptionTest.java
index 91ea19e6768b7ac0053a1806e8e7a276eef50224..b8c3673735227e6794ed440dcf942720df7f54d0 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/AddressNotFoundExceptionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/AddressNotFoundExceptionTest.java
@@ -29,6 +29,7 @@ import java.util.UUID;
 import org.junit.jupiter.api.Test;
 
 class AddressNotFoundExceptionTest {
+
 	@Test
 	void shouldCreateException() {
 		var id = UUID.randomUUID().toString();
@@ -36,4 +37,5 @@ class AddressNotFoundExceptionTest {
 
 		assertThat(exception.getMessage()).isEqualTo("No NachrichtEvent for id '" + id + "' found");
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/ExceptionControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/ExceptionControllerTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef54f0c33aaa737db155c9d91557b689fcdedd56
--- /dev/null
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/ExceptionControllerTest.java
@@ -0,0 +1,151 @@
+/*
+ * 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.antragsraum.common;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.context.request.WebRequest;
+
+@ExtendWith(MockitoExtension.class)
+public class ExceptionControllerTest {
+
+	@InjectMocks
+	private ExceptionController exceptionController;
+
+	@Nested
+	class TestHandleAddressNotFoundException {
+
+		@Mock
+		private AddressNotFoundException exception;
+
+		@Test
+		void shouldReturnMessage() {
+			var message = exceptionController.handleAddressNotFoundException(exception);
+
+			assertThat(message).isNotNull();
+		}
+
+	}
+
+	@Nested
+	class TestHandleNotFoundException {
+
+		@Mock
+		private NotFoundException exception;
+
+		@Test
+		void shouldReturnMessage() {
+			var message = exceptionController.handleNotFoundException(exception);
+
+			assertThat(message).isNotNull();
+		}
+
+	}
+
+	@Nested
+	class TestHandleGeneralException {
+
+		@Mock
+		private TechnicalException exception;
+
+		@Test
+		void shouldReturnMessage() {
+			var message = exceptionController.handleGeneralException(exception);
+
+			assertThat(message).isNotNull();
+		}
+
+	}
+
+	@Nested
+	class TestHandleInvalidFileTypeException {
+
+		@Mock
+		private InvalidFileTypeException exception;
+
+		@Mock
+		private WebRequest webRequest;
+
+		@Test
+		void shouldHaveResponse() {
+			var response = exceptionController.handleInvalidFileTypeException(exception, webRequest);
+
+			assertThat(response).isNotNull();
+		}
+
+		@Test
+		void shouldHaveNotAcceptableError() {
+			var response = exceptionController.handleInvalidFileTypeException(exception, webRequest);
+
+			assertThat(response.getStatusCode()).isEqualTo(HttpStatus.NOT_ACCEPTABLE);
+		}
+
+		@Test
+		void shouldHaveMessage() {
+			var response = exceptionController.handleInvalidFileTypeException(exception, webRequest);
+
+			assertThat(response.getBody()).isEqualTo("File not acceptable");
+		}
+
+	}
+
+	@Nested
+	class TestHandleVirusFoundException {
+
+		@Mock
+		private VirusFoundException exception;
+
+		@Mock
+		private WebRequest webRequest;
+
+		@Test
+		void shouldHaveResponse() {
+			var response = exceptionController.handleVirusFoundException(exception, webRequest);
+
+			assertThat(response).isNotNull();
+		}
+
+		@Test
+		void shouldHaveNotAcceptableError() {
+			var response = exceptionController.handleVirusFoundException(exception, webRequest);
+
+			assertThat(response.getStatusCode()).isEqualTo(HttpStatus.NOT_ACCEPTABLE);
+		}
+
+		@Test
+		void shouldHaveMessage() {
+			var response = exceptionController.handleVirusFoundException(exception, webRequest);
+
+			assertThat(response.getBody()).isEqualTo("Virus found");
+		}
+
+	}
+
+}
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/SendTimeoutExceptionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/InvalidFileTypeExceptionTest.java
old mode 100755
new mode 100644
similarity index 58%
rename from server/src/test/java/de/ozgcloud/antragsraum/common/SendTimeoutExceptionTest.java
rename to server/src/test/java/de/ozgcloud/antragsraum/common/InvalidFileTypeExceptionTest.java
index 214bd6489c4373acab84799313461113b57c2cb2..22080cff4396d21d72d38f5fbb321bf97e872c31
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/SendTimeoutExceptionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/InvalidFileTypeExceptionTest.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * 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 -
@@ -19,21 +19,21 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+
 package de.ozgcloud.antragsraum.common;
 
-import org.junit.jupiter.api.Test;
+import static org.assertj.core.api.Assertions.*;
 
-import java.util.UUID;
+import org.junit.jupiter.api.Test;
 
-import static org.assertj.core.api.Assertions.*;
+class InvalidFileTypeExceptionTest {
 
-class SendTimeoutExceptionTest {
+	@Test
+	void shouldCreateException() {
+		var fileName = "TestFileName.txt";
+		var exception = new InvalidFileTypeException(fileName);
 
-    @Test
-    void shouldCreateException() {
-        var id = UUID.randomUUID().toString();
-        var exception = new SendTimeoutException(id, new RuntimeException("test"));
+		assertThat(exception.getMessage()).isEqualTo("File '" + fileName + "' has an unsupported file type");
+	}
 
-        assertThat(exception.getMessage()).isEqualTo("A timeout sending a nachricht happened. Command " + id + " did not finish in time! Message: test");
-    }
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/NotAccessibleExceptionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/NotAccessibleExceptionTest.java
index 1c92b68d628b88f86c5b02d2c430d7b2e76298ec..4a12239c858106bf36abb41620d65c6172e3bcee 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/NotAccessibleExceptionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/NotAccessibleExceptionTest.java
@@ -28,6 +28,7 @@ import java.util.UUID;
 import org.junit.jupiter.api.Test;
 
 class NotAccessibleExceptionTest {
+
 	@Test
 	void shouldCreateException() {
 		var rueckfrageId = UUID.randomUUID().toString();
@@ -36,4 +37,5 @@ class NotAccessibleExceptionTest {
 		assertThat(exception.getMessage()).isEqualTo(
 		  "Current user does not have the required trust level for the Rueckfrage with id '" + rueckfrageId + "'.");
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/NotFoundExceptionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/NotFoundExceptionTest.java
index d2837d49881c9e4664d6c488742b7bdc31691ec5..e9d06570fb61c928367a306ab8213e809eb072a5 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/NotFoundExceptionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/NotFoundExceptionTest.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -21,18 +21,20 @@
  */
 package de.ozgcloud.antragsraum.common;
 
-import org.junit.jupiter.api.Test;
+import static org.assertj.core.api.Assertions.*;
 
 import java.util.UUID;
 
-import static org.assertj.core.api.Assertions.*;
+import org.junit.jupiter.api.Test;
 
 class NotFoundExceptionTest {
-    @Test
-    void shouldCreateException() {
-        var id = UUID.randomUUID().toString();
-        var exception = new NotFoundException(String.class, id);
 
-        assertThat(exception.getMessage()).isEqualTo("Object 'String' with id '" + id + "' not found.");
-    }
+	@Test
+	void shouldCreateException() {
+		var id = UUID.randomUUID().toString();
+		var exception = new NotFoundException(String.class, id);
+
+		assertThat(exception.getMessage()).isEqualTo("Object 'String' with id '" + id + "' not found.");
+	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/RestClientUtilsTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/RestClientUtilsTest.java
index f5aace46e9de92e679393dd642abc16448a8e799..cf2495fb69dde5b67935ef59cb204fd79c9b957b 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/RestClientUtilsTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/RestClientUtilsTest.java
@@ -26,24 +26,19 @@ import static org.assertj.core.api.Assertions.*;
 
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Spy;
-
-import de.ozgcloud.antragsraum.nachricht.NachrichtenRestClient;
 
 class RestClientUtilsTest {
-	@Spy
-	@InjectMocks
-	private NachrichtenRestClient restClient;
 
 	@Nested
 	class TestGrpcAddressSanitizer {
+
 		@Test
 		void shouldSanitizeAddress() {
 			var address = RestClientUtils.sanitizeAddress("static://localhost:9090");
 
 			assertThat(address).isEqualTo("localhost");
 		}
+
 	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/TechnicalExceptionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/TechnicalExceptionTest.java
index 44ed5387a84695c615d5c30433a08991f3994834..83e4e79c4446bc587ab803f25296e90452cdb3cf 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/TechnicalExceptionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/TechnicalExceptionTest.java
@@ -39,4 +39,5 @@ class TechnicalExceptionTest {
 
 		assertThat(exception.getMessage()).isEqualTo("TechnicalException happened! Message: " + MESSAGE);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/SecurityExceptionAdviceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/VirusFoundExceptionTest.java
similarity index 64%
rename from server/src/test/java/de/ozgcloud/antragsraum/common/SecurityExceptionAdviceTest.java
rename to server/src/test/java/de/ozgcloud/antragsraum/common/VirusFoundExceptionTest.java
index 36be2b73108e9f4aa4d2d63fab7967d25e08f033..820a0ee56a095ac79173328e735243335d384cc9 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/SecurityExceptionAdviceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/VirusFoundExceptionTest.java
@@ -1,5 +1,7 @@
 /*
- * Copyright (c) 2024.
+ * Copyright (c) 2023-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");
@@ -17,23 +19,22 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-
 package de.ozgcloud.antragsraum.common;
 
-import org.junit.jupiter.api.Test;
+import static org.assertj.core.api.Assertions.*;
 
 import java.util.UUID;
 
-import static org.assertj.core.api.Assertions.*;
+import org.junit.jupiter.api.Test;
 
-class SecurityExceptionAdviceTest {
-    @Test
-    void shouldCreateException() {
-        var message = UUID.randomUUID().toString();
+class VirusFoundExceptionTest {
 
-        var exception = new SecurityException(message, new RuntimeException("test"));
+	@Test
+	void shouldCreateException() {
+		var id = UUID.randomUUID().toString();
+		var exception = new VirusFoundException(id);
 
-        assertThat(exception.getMessage()).isEqualTo(message);
-    }
+		assertThat(exception.getMessage()).isEqualTo("File with nachrichtId '" + id + "' contains virus.");
+	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/common/VirusScanExceptionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/common/VirusScanExceptionTest.java
index 340b6336c0b7b29554fbb7630c5f151df077f519..0d5515b02cc1c3d7162ac93a1e5395d72eb4df24 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/common/VirusScanExceptionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/common/VirusScanExceptionTest.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2023-2024.
- * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ * Copyright (c) 2023-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 -
@@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class VirusScanExceptionTest {
+
 	@Test
 	void shouldCreateException() {
 		var fileName = "TestFileName.pdf";
@@ -33,4 +34,5 @@ class VirusScanExceptionTest {
 
 		assertThat(exception.getMessage()).isEqualTo("Virus scan for file with name '" + fileName + "' failed.");
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationByIdResponseFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationByIdResponseFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..c61f9b60854907b6736a9e93690910bdc8a6dafb
--- /dev/null
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationByIdResponseFactory.java
@@ -0,0 +1,14 @@
+package de.ozgcloud.antragsraum.events;
+
+import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationByIdResponse;
+import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationNachricht;
+
+public class GrpcInformationByIdResponseFactory {
+
+	private static final InfoGrpcInformationNachricht NACHRICHT = GrpcNachrichtEventTestFactory.create();
+
+	public static InfoGrpcInformationByIdResponse create() {
+		return new InfoGrpcInformationByIdResponse().nachricht(NACHRICHT);
+	}
+
+}
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationResponseTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationResponseTestFactory.java
index 59dc4743b931a483a30ed9e8d7fa33f141f15e45..6ef03e4c8dab40a8b044266620a9744961d77482 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationResponseTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcInformationResponseTestFactory.java
@@ -7,11 +7,10 @@ import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationResponse;
 
 public class GrpcInformationResponseTestFactory {
 
-	public static final InfoGrpcInformationNachricht NACHRICHT = NachrichtEventTestFactory.createInfoGrpcInformationNachricht();
+	public static final InfoGrpcInformationNachricht NACHRICHT = GrpcNachrichtEventTestFactory.create();
 
-	public static InfoGrpcInformationResponse createResponse() {
-		var response = new InfoGrpcInformationResponse();
-		response.setNachrichten(List.of(NACHRICHT));
-		return response;
+	public static InfoGrpcInformationResponse create() {
+		return new InfoGrpcInformationResponse().nachrichten(List.of(NACHRICHT));
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcNachrichtEventTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcNachrichtEventTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..705e6c80ec9cbe2c9e09c8712e40994adf286eb3
--- /dev/null
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/GrpcNachrichtEventTestFactory.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2023-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.antragsraum.events;
+
+import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationNachricht;
+
+public class GrpcNachrichtEventTestFactory {
+
+	public static InfoGrpcInformationNachricht create() {
+		return new InfoGrpcInformationNachricht()
+		  .id(NachrichtEventTestFactory.ID)
+		  .postfachId(NachrichtEventTestFactory.POSTFACH_ID)
+		  .ozgCloudAddress(NachrichtEventTestFactory.URL);
+	}
+
+}
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventMapperTest.java
index 0ccc15a580aae511ed6ce9fc3d10407fd19f8dd6..d2c430da11105b66e65f56ae9813ae96dfb8f523 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventMapperTest.java
@@ -38,13 +38,15 @@ class NachrichtEventMapperTest {
 	@Nested
 	class TestFromGrpc {
 
-		private final InfoGrpcInformationNachricht grpcInformationNachricht = NachrichtEventTestFactory.createInfoGrpcInformationNachricht();
+		private final InfoGrpcInformationNachricht grpcInformationNachricht = GrpcNachrichtEventTestFactory.create();
 
 		@Test
 		void shouldMap() {
 			var mapped = mapper.fromRest(grpcInformationNachricht);
 
-			assertThat(mapped).usingRecursiveComparison().isEqualTo(NachrichtEventTestFactory.createNachrichtEvent());
+			assertThat(mapped).usingRecursiveComparison().isEqualTo(NachrichtEventTestFactory.create());
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteServiceTest.java
index e6684256bb43cb6465e6450842be9b1dd7f6fe46..1ff63c3ecea529fab068cd1d2b064e4c0dc31760 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteServiceTest.java
@@ -46,11 +46,11 @@ class NachrichtEventRemoteServiceTest {
 	@Nested
 	class TestGetNachrichtEventById {
 
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create();
 
 		@BeforeEach
 		void init() {
-			when(restClient.getNachrichtEventById(any())).thenReturn(RestInformationByIdResponseTestFactory.createResponse());
+			when(restClient.getNachrichtEventById(any())).thenReturn(GrpcInformationByIdResponseFactory.create());
 			when(mapper.fromRest(any())).thenReturn(nachrichtEvent);
 		}
 
@@ -74,17 +74,18 @@ class NachrichtEventRemoteServiceTest {
 
 			assertThat(mappedResult).usingRecursiveComparison().isEqualTo(nachrichtEvent);
 		}
+
 	}
 
 	@DisplayName("Get nachricht events by postfach")
 	@Nested
 	class TestGetNachrichtEventsByPostfach {
 
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create();
 
 		@BeforeEach
 		void mock() {
-			when(restClient.getNachrichtEventsByPostfach(any())).thenReturn(GrpcInformationResponseTestFactory.createResponse());
+			when(restClient.getNachrichtEventsByPostfach(any())).thenReturn(GrpcInformationResponseTestFactory.create());
 			when(mapper.fromRest(any())).thenReturn(nachrichtEvent);
 		}
 
@@ -108,5 +109,7 @@ class NachrichtEventRemoteServiceTest {
 
 			assertThat(mappedResult).containsExactly(nachrichtEvent);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteTestConfiguration.java
index 72c0ab4ef8cb2a8c4b1cda87388df3ba6dd60ac3..04a7983d484f0c1e041971456cdda0593a080c04 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRemoteTestConfiguration.java
@@ -27,10 +27,12 @@ import org.springframework.context.annotation.Configuration;
 
 @Configuration
 public class NachrichtEventRemoteTestConfiguration {
+
 	@Bean
 	NachrichtEventRemoteService nachrichtEventRemoteService() {
 		var restClient = mock(NachrichtEventRestClient.class);
 		var mapper = Mappers.getMapper(NachrichtEventMapper.class);
 		return new NachrichtEventRemoteService(restClient, mapper);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClientTest.java
index 0d37e26a2e7c5bde4d6da3f316b9def879d60629..26e627ccd1db40717bd49aec8e90caa0a43db766 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClientTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventRestClientTest.java
@@ -32,7 +32,7 @@ class NachrichtEventRestClientTest {
 	@Nested
 	class TestGetNachrichtEventsByPostfach {
 
-		private final InfoGrpcInformationResponse grpcResponse = GrpcInformationResponseTestFactory.createResponse();
+		private final InfoGrpcInformationResponse grpcResponse = GrpcInformationResponseTestFactory.create();
 
 		@BeforeEach
 		void init() {
@@ -53,13 +53,14 @@ class NachrichtEventRestClientTest {
 
 			assertThat(response).isEqualTo(grpcResponse);
 		}
+
 	}
 
 	@DisplayName("Get nachricht event by id")
 	@Nested
 	class TestGetNachrichtEventById {
 
-		private final InfoGrpcInformationByIdResponse grpcResponse = RestInformationByIdResponseTestFactory.createResponse();
+		private final InfoGrpcInformationByIdResponse grpcResponse = GrpcInformationByIdResponseFactory.create();
 
 		@BeforeEach
 		void init() {
@@ -80,6 +81,7 @@ class NachrichtEventRestClientTest {
 
 			assertThat(response).isEqualTo(grpcResponse);
 		}
+
 	}
 
 	@DisplayName("Build get request")
@@ -105,5 +107,7 @@ class NachrichtEventRestClientTest {
 		void shouldThrowException() {
 			assertThrows(TechnicalException.class, () -> nachrichtClient.get("dummyEndpoint", Object.class));
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventServiceTest.java
index fe45a7e063048647eaf6266f917062b25c631e8e..f19915d0882726613fea6480ee74c919654d2359 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventServiceTest.java
@@ -34,6 +34,7 @@ import de.ozgcloud.antragsraum.nachricht.NachrichtTestFactory;
 
 @ExtendWith(MockitoExtension.class)
 class NachrichtEventServiceTest {
+
 	@Spy
 	@InjectMocks
 	private NachrichtEventService service;
@@ -53,4 +54,5 @@ class NachrichtEventServiceTest {
 
 		verify(remoteService).getNachrichtEventById(anyString());
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventTestFactory.java
index f316fb7afa0971e94fe74d0f228f5bbfd333c17f..b69044983c5669f25199ab0e567e513b249d7043 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/events/NachrichtEventTestFactory.java
@@ -23,29 +23,21 @@ package de.ozgcloud.antragsraum.events;
 
 import java.util.UUID;
 
-import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationNachricht;
-
 public class NachrichtEventTestFactory {
+
 	public static final String ID = UUID.randomUUID().toString();
 	public static final String POSTFACH_ID = UUID.randomUUID().toString();
 	public static final String URL = "http://localhost";
 
-	public static NachrichtEvent createNachrichtEvent() {
-		return createNachrichtEventBuilder().build();
+	public static NachrichtEvent create() {
+		return createBuilder().build();
 	}
 
-	public static NachrichtEvent.NachrichtEventBuilder createNachrichtEventBuilder() {
+	public static NachrichtEvent.NachrichtEventBuilder createBuilder() {
 		return NachrichtEvent.builder()
 		  .id(ID)
 		  .postfachId(POSTFACH_ID)
 		  .address(URL);
 	}
 
-	public static InfoGrpcInformationNachricht createInfoGrpcInformationNachricht() {
-		var nachricht = new InfoGrpcInformationNachricht();
-		nachricht.setId(ID);
-		nachricht.setPostfachId(POSTFACH_ID);
-		nachricht.setOzgCloudAddress(URL);
-		return nachricht;
-	}
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/events/RestInformationByIdResponseTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/events/RestInformationByIdResponseTestFactory.java
deleted file mode 100644
index 387f0db15c112b5aada5071ea7ae33ee9b841954..0000000000000000000000000000000000000000
--- a/server/src/test/java/de/ozgcloud/antragsraum/events/RestInformationByIdResponseTestFactory.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.ozgcloud.antragsraum.events;
-
-import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationByIdResponse;
-import de.ozgcloud.antragsraum.proxy.InfoGrpcInformationNachricht;
-
-public class RestInformationByIdResponseTestFactory {
-
-	private static final InfoGrpcInformationNachricht NACHRICHT = NachrichtEventTestFactory.createInfoGrpcInformationNachricht();
-
-	public static InfoGrpcInformationByIdResponse createResponse() {
-		return createInfoGrpcInformationByIdResponse();
-	}
-
-	public static InfoGrpcInformationByIdResponse createInfoGrpcInformationByIdResponse() {
-		var response = new InfoGrpcInformationByIdResponse();
-		response.setNachricht(NACHRICHT);
-		return response;
-	}
-}
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java
index 66cad5b1ef50dceb4e8677734614761e580d057e..9bcffac2907f1b7ad766d475fea0268eb5ca759f 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java
@@ -36,6 +36,7 @@ class AntragraumProxyMapperTest {
 
 	@Nested
 	class TestToRestProxyAntwort {
+
 		private final ReplyNachricht replyNachricht = ReplyNachrichtTestFactory.create();
 
 		@Test
@@ -58,6 +59,7 @@ class AntragraumProxyMapperTest {
 
 			assertThat(grpcRueckfrageAnswer.getAttachmentFileId()).isEqualTo(Collections.emptyList());
 		}
+
 	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java
index 7d85279f39764541af9e381c0d3447f844840277..65859bb2856f3803b7fc13c712349886a89d7f9a 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java
@@ -36,6 +36,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrageHead;
 import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcSendRueckfrageAnswerResponse;
 
 public class AntragraumproxyGrpcRueckfrageTestFactory {
+
 	public static final String RUECKFRAGE_ID = UUID.randomUUID().toString();
 	public static final String VORGANG_ID = UUID.randomUUID().toString();
 	public static final String VORGANG_NAME = NachrichtTestFactory.VORGANG_TITLE;
@@ -124,4 +125,5 @@ public class AntragraumproxyGrpcRueckfrageTestFactory {
 		response.setCommandId(CommandTestFactory.ID);
 		return response;
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java
index 9a1efc4633fcbf52c99b344deac883e20bc1f455..5207a7bc5cb9a7c0d8acd1084ed8f3e34202ebd5 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java
@@ -32,6 +32,7 @@ import org.junit.jupiter.api.Test;
 import de.ozgcloud.vorgang.grpc.binaryFile.GrpcBinaryFile;
 
 class AttachmentMapperTest {
+
 	static final String ID = UUID.randomUUID().toString();
 	static final String CONTENT_TYPE = ContentType.APPLICATION_OCTET_STREAM.toString();
 	static final long FILE_SIZE = 10;
@@ -46,6 +47,7 @@ class AttachmentMapperTest {
 
 	@Nested
 	class MapFromGrpcBinaryFile {
+
 		@Test
 		void shouldMapAttachment() {
 			var res = AttachmentMapper.fromGrpcBinaryFile(file);
@@ -80,5 +82,7 @@ class AttachmentMapperTest {
 
 			assertThat(res).isEqualTo(CONTENT_TYPE);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java
index a32975ad800ab85abcd0415ee39fe70899b814d0..a20f76e228bd65ab6b79f917be15fb39531a6129 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java
@@ -28,6 +28,7 @@ import org.junit.jupiter.api.Test;
 import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrageHead;
 
 class NachrichtHeaderMapperTest {
+
 	private final AntragraumproxyGrpcRueckfrageHead rueckfrageHead = AntragraumproxyGrpcRueckfrageTestFactory.createRueckfrageHead();
 
 	@Test
@@ -101,4 +102,5 @@ class NachrichtHeaderMapperTest {
 
 		assertThat(nachrichtHeader.status()).isEqualTo(AntragraumproxyGrpcRueckfrageTestFactory.STATUS);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java
index 8b70b50ce731fb640bbb99052b63ebfeb34e5808..dfaf66c36cd42c7072d9014abd518d175a2d8564 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java
@@ -43,6 +43,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrage;
 
 @ExtendWith(MockitoExtension.class)
 class NachrichtMapperTest {
+
 	@Mock
 	private FileService fileService;
 
@@ -60,6 +61,7 @@ class NachrichtMapperTest {
 
 	@Nested
 	class TestFromRestRueckfrage {
+
 		private final AntragraumproxyGrpcRueckfrage rueckfrage = AntragraumproxyGrpcRueckfrageTestFactory.createRueckfrage();
 		private final AntragraumproxyGrpcRueckfrage answeredRueckfrage = AntragraumproxyGrpcRueckfrageTestFactory.createRueckfrageWithReply();
 
@@ -213,10 +215,12 @@ class NachrichtMapperTest {
 
 			assertThat(nachricht.status()).isEqualTo(NachrichtTestFactory.STATUS);
 		}
+
 	}
 
 	@Nested
 	class TestToGrpcRueckfrageAnswer {
+
 		@Test
 		void shouldMapNachrichtText() {
 			var nachricht = mapper.toRestRueckfrageAnswer(ReplyNachrichtTestFactory.create());
@@ -249,5 +253,7 @@ class NachrichtMapperTest {
 
 			assertThat(nachricht.attachments()).isEmpty();
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java
index 69b632c38601e06fb675ec4a35cd2d301b1d375a..bf821c3cea0f3fb24599077c620aab157eaf00c1 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java
@@ -42,6 +42,7 @@ import de.ozgcloud.antragsraum.WebConfiguration;
 	  NachrichtenControllerTestConfiguration.class }))
 @Configuration
 public class NachrichtServiceTestConfiguration {
+
 	@Bean(name = WebConfiguration.NACHRICHT_REST_CLIENT)
 	public RestClient restClient() {
 		return RestClient.builder()
@@ -53,4 +54,5 @@ public class NachrichtServiceTestConfiguration {
 	public Validator defaultValidator() {
 		return new LocalValidatorFactoryBean();
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java
index 200b613a84fa15bcc10bd25b3685b304af9b3fc2..d13a2cfd5b62bc8f8f2d50f156da37072d0c11a8 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java
@@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class NachrichtTest {
+
 	private final Nachricht nachricht = NachrichtTestFactory.createNachricht();
 
 	@Test
@@ -35,4 +36,5 @@ class NachrichtTest {
 
 		assertThat(nachrichtString).doesNotContain(NachrichtTestFactory.TEXT);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java
index a90b4c4b403ca74a37ef03cff5f5f75b7305fef4..36e7504b6c28b253434f955d7623be7f866160ef 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.UUID;
 
 public class NachrichtTestFactory {
+
 	public static final String ID = UUID.randomUUID().toString();
 	public static final String NACHRICHT_EVENT_ID = UUID.randomUUID().toString();
 	public static final String POSTFACH_ID = UUID.randomUUID().toString();
@@ -89,4 +90,5 @@ public class NachrichtTestFactory {
 		  .accessible(ACCESSIBLE)
 		  .status(STATUS);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java
index e56cb39db2d08a57d4fca5adb36323daef352f8a..75ec631e94bae9a3053e32b2e07e36cda9a37aac 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java
@@ -56,6 +56,7 @@ import de.ozgcloud.antragsraum.common.TechnicalException;
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
 @SpringJUnitConfig(classes = { NachrichtenControllerTestConfiguration.class })
 public class NachrichtenControllerITCase {
+
 	@SpyBean
 	private NachrichtenController nachrichtenController;
 
@@ -70,6 +71,7 @@ public class NachrichtenControllerITCase {
 
 	@Nested
 	class TestLoadingRueckfrageHeaders {
+
 		@Test
 		@WithMockUser
 		void shouldLoadRueckfragenHeader() throws Exception {
@@ -143,10 +145,12 @@ public class NachrichtenControllerITCase {
 			  get(NachrichtenController.PATH + "/rueckfragen/" + NachrichtTestFactory.POSTFACH_ID)
 				.contentType(MediaType.APPLICATION_JSON).characterEncoding(Charset.defaultCharset()));
 		}
+
 	}
 
 	@Nested
 	class TestLoadingRueckfrage {
+
 		@BeforeEach
 		void init() {
 			when(nachrichtenService.getRueckfrage(NachrichtTestFactory.ID, NachrichtTestFactory.NACHRICHT_EVENT_ID)).thenReturn(
@@ -188,10 +192,12 @@ public class NachrichtenControllerITCase {
 			  get(NachrichtenController.PATH + "/rueckfrage/" + NachrichtTestFactory.ID + "/" + NachrichtTestFactory.NACHRICHT_EVENT_ID)
 				.contentType(MediaType.APPLICATION_JSON).characterEncoding(Charset.defaultCharset()));
 		}
+
 	}
 
 	@Nested
 	class TestSendingNachricht {
+
 		private final ObjectMapper mapper = new ObjectMapper();
 		private final ReplyNachricht msg = ReplyNachrichtTestFactory.create();
 		private final CommandReference commandReference = CommandReferenceTestFactory.create();
@@ -228,6 +234,7 @@ public class NachrichtenControllerITCase {
 
 		@Nested
 		class TestSendingInvalidReply {
+
 			@Test
 			@WithMockUser
 			void shouldNotSendNachrichtBlankRueckfrageId() throws Exception {
@@ -267,6 +274,7 @@ public class NachrichtenControllerITCase {
 
 				performPutRequest(mapper.writeValueAsString(invalidMsg)).andExpect(status().isBadRequest());
 			}
+
 		}
 
 		ResultActions performPutRequest(String body) throws Exception {
@@ -277,5 +285,7 @@ public class NachrichtenControllerITCase {
 				.characterEncoding(Charset.defaultCharset())
 				.content(body));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java
index 4cbade4e3e0ad583f973d91afc5a2bff75d02f92..b04f71d2daace4ceb88d4df43e3e658c880a398a 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java
@@ -37,6 +37,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
 
 @ExtendWith(MockitoExtension.class)
 class NachrichtenControllerTest {
+
 	@Spy
 	@InjectMocks
 	private NachrichtenController nachrichtenController;
@@ -46,6 +47,7 @@ class NachrichtenControllerTest {
 
 	@Nested
 	class TestLoadingRueckfrageHeaders {
+
 		@BeforeEach
 		void init() {
 			when(nachrichtenService.getRueckfrageHeadersOfPostfach(NachrichtTestFactory.POSTFACH_ID)).thenReturn(
@@ -65,10 +67,12 @@ class NachrichtenControllerTest {
 
 			verify(nachrichtenService).getRueckfrageHeadersOfPostfach(anyString());
 		}
+
 	}
 
 	@Nested
 	class TestLoadingRueckfrage {
+
 		@BeforeEach
 		void init() {
 			when(nachrichtenService.getRueckfrage(NachrichtTestFactory.ID, NachrichtTestFactory.NACHRICHT_EVENT_ID)).thenReturn(
@@ -88,15 +92,19 @@ class NachrichtenControllerTest {
 
 			verify(nachrichtenService).getRueckfrage(anyString(), anyString());
 		}
+
 	}
 
 	@Nested
 	class TestSendingAnswer {
+
 		@Test
 		void shouldCallService() {
 			nachrichtenController.sendNachricht(ReplyNachrichtTestFactory.create());
 
 			verify(nachrichtenService).sendRueckfrageAnswer(any(ReplyNachricht.class));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java
index 0b87eca4ef6aa7b48974d7976d95ac82c989cdf3..2ac99b2703aba6e496696d7d1324a5ba865903fb 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java
@@ -39,10 +39,12 @@ import de.ozgcloud.antragsraum.WebConfiguration;
 	  NachrichtServiceTestConfiguration.class }))
 @Configuration
 public class NachrichtenControllerTestConfiguration {
+
 	@Bean(name = WebConfiguration.NACHRICHT_REST_CLIENT)
 	public RestClient restClient() {
 		return RestClient.builder()
 		  .baseUrl("http//localhost:8080")
 		  .build();
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java
index c5ac08da5e41efce5a6b6bc66598c146e0609652..3efbdd4a46e6453a280cff38e70a274eac18279f 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java
@@ -45,6 +45,7 @@ import lombok.extern.log4j.Log4j2;
 @SpringJUnitConfig(classes = { NachrichtenRemoteServiceTestConfiguration.class })
 @Log4j2
 class NachrichtenRemoteServiceITCase {
+
 	public static final String ADDRESS = "localhost";
 
 	String samlResponse;
@@ -63,7 +64,8 @@ class NachrichtenRemoteServiceITCase {
 
 	@Nested
 	class TestGetNachrichtHeaders {
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEventBuilder().address(ADDRESS).build();
+
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createBuilder().address(ADDRESS).build();
 
 		@BeforeEach
 		void setup() {
@@ -87,11 +89,13 @@ class NachrichtenRemoteServiceITCase {
 
 			assertThat(nachrichtHeaders.getFirst().id()).isEqualTo(RUECKFRAGE_ID);
 		}
+
 	}
 
 	@Nested
 	class TestGetNachricht {
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEventBuilder().address(ADDRESS).build();
+
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createBuilder().address(ADDRESS).build();
 
 		@BeforeEach
 		void setup() {
@@ -111,10 +115,12 @@ class NachrichtenRemoteServiceITCase {
 
 			assertThat(nachricht.id()).isEqualTo(RUECKFRAGE_ID);
 		}
+
 	}
 
 	@Nested
 	class TestSendNachricht {
+
 		@Test
 		void shouldSendNachricht() {
 			initUserPasswordToken();
@@ -127,10 +133,12 @@ class NachrichtenRemoteServiceITCase {
 				throw new RuntimeException(e);
 			}
 		}
+
 	}
 
 	private void initUserPasswordToken() {
 		UsernamePasswordAuthenticationToken authentication = mock(UsernamePasswordAuthenticationToken.class);
 		SecurityContextHolder.getContext().setAuthentication(authentication);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java
index d866a13274a88ad3014c042adaee4d1a65d5cf25..fc06837b82bc97be2a30c08e4a0c9c8b36965af7 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java
@@ -57,6 +57,7 @@ import io.grpc.StatusRuntimeException;
 
 @ExtendWith(MockitoExtension.class)
 public class NachrichtenRemoteServiceTest {
+
 	public static final String ADDRESS = "test";
 
 	@Spy
@@ -83,7 +84,8 @@ public class NachrichtenRemoteServiceTest {
 
 	@Nested
 	class TestNachrichtenAvailable {
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create();
 
 		@BeforeEach
 		void init() {
@@ -118,10 +120,12 @@ public class NachrichtenRemoteServiceTest {
 
 			verify(nachrichtenRestClient).getFindRueckfragen(anyString(), anyString(), anyString());
 		}
+
 	}
 
 	@Nested
 	class TestNoNachrichtenAvailable {
+
 		@BeforeEach
 		void init() {
 			doThrow(StatusRuntimeException.class).when(nachrichtenRestClient).getFindRueckfragen(anyString(), anyString(), anyString());
@@ -129,14 +133,16 @@ public class NachrichtenRemoteServiceTest {
 
 		@Test
 		void shouldHandleStatusRuntimeException() {
-			var nachrichtHeaders = nachrichtenRemoteService.findRueckfrageHeads(NachrichtEventTestFactory.createNachrichtEvent());
+			var nachrichtHeaders = nachrichtenRemoteService.findRueckfrageHeads(NachrichtEventTestFactory.create());
 
 			assertThat(nachrichtHeaders).isEmpty();
 		}
+
 	}
 
 	@Nested
 	class TestNoTargetAddressAvailable {
+
 		@BeforeEach
 		void init() {
 			doThrow(AddressNotFoundException.class).when(nachrichtenRestClient)
@@ -145,15 +151,17 @@ public class NachrichtenRemoteServiceTest {
 
 		@Test
 		void shouldThrowAddressNotFoundException() {
-			var nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+			var nachrichtEvent = NachrichtEventTestFactory.create();
 
 			assertThatExceptionOfType(AddressNotFoundException.class).isThrownBy(() -> nachrichtenRemoteService.findRueckfrageHeads(nachrichtEvent));
 		}
+
 	}
 
 	@Nested
 	class TestGetNachricht {
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create();
 
 		@BeforeEach
 		void init() {
@@ -176,17 +184,19 @@ public class NachrichtenRemoteServiceTest {
 
 			verify(nachrichtenRestClient).getGetRueckfrage(anyString(), anyString(), anyString());
 		}
+
 	}
 
 	@Nested
 	class TestGetNachrichtError {
+
 		@Test
 		void shouldHandleNullRueckfrage() {
 			when(nachrichtenRestClient.getGetRueckfrage(anyString(), anyString(), anyString())).thenReturn(
 			  new AntragraumproxyGrpcGetRueckfrageResponse());
 
 			nachrichtenRemoteService.getRueckfrage(AntragraumproxyGrpcRueckfrageTestFactory.RUECKFRAGE_ID,
-			  NachrichtEventTestFactory.createNachrichtEvent());
+			  NachrichtEventTestFactory.create());
 
 			verify(nachrichtenRestClient).getGetRueckfrage(anyString(), anyString(), anyString());
 		}
@@ -197,14 +207,16 @@ public class NachrichtenRemoteServiceTest {
 			  new StatusRuntimeException(Status.CANCELLED));
 
 			nachrichtenRemoteService.getRueckfrage(AntragraumproxyGrpcRueckfrageTestFactory.RUECKFRAGE_ID,
-			  NachrichtEventTestFactory.createNachrichtEvent());
+			  NachrichtEventTestFactory.create());
 
 			verify(nachrichtenRestClient).getGetRueckfrage(anyString(), anyString(), anyString());
 		}
+
 	}
 
 	@Nested
 	class TestSendAnswer {
+
 		private final ReplyNachricht reply = ReplyNachrichtTestFactory.create();
 
 		@BeforeEach
@@ -237,5 +249,7 @@ public class NachrichtenRemoteServiceTest {
 
 			verify(nachrichtenRestClient).answerRueckfrage(any(AntragraumproxyGrpcRueckfrageAnswer.class), anyString(), anyString());
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java
index 21f2bd81161301c657450d428e0a7523e6822b53..69bffac07e707260d47270df315e92d3d3496d4e 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java
@@ -45,6 +45,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcSendRueckfrageAnswerResp
 	  NachrichtServiceTestConfiguration.class }))
 @Configuration
 public class NachrichtenRemoteServiceTestConfiguration {
+
 	@MockBean
 	private FileService fileService;
 	@MockBean
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java
index d8da0cfa0efd193972a659ca091d8a159a2113de..643cf8930b8c5e46dfb18af71bd625f6a3f90ad3 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java
@@ -44,6 +44,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @SpringJUnitConfig(classes = { NachrichtenRestClientTestConfiguration.class })
 @RestClientTest(NachrichtenRestClient.class)
 class NachrichtenRestClientTest {
+
 	final static String ADDRESS = "http://localhost:8382/";
 	private final static String TOKEN = "saml_token";
 
@@ -64,6 +65,7 @@ class NachrichtenRestClientTest {
 
 		@Nested
 		class TestRueckfrageAnswer {
+
 			@BeforeEach
 			void setup() throws JsonProcessingException {
 				customizer.customize(restClientBuilder);
@@ -79,10 +81,12 @@ class NachrichtenRestClientTest {
 
 				assertThat(response).isNotNull();
 			}
+
 		}
 
 		@Nested
 		class TestFindRueckfragen {
+
 			@BeforeEach
 			void setup() throws JsonProcessingException {
 				customizer.customize(restClientBuilder);
@@ -98,10 +102,12 @@ class NachrichtenRestClientTest {
 
 				assertThat(response).isNotNull();
 			}
+
 		}
 
 		@Nested
 		class TestGetRueckfrage {
+
 			@BeforeEach
 			void setup() throws JsonProcessingException {
 				customizer.customize(restClientBuilder);
@@ -117,7 +123,9 @@ class NachrichtenRestClientTest {
 
 				assertThat(response).isNotNull();
 			}
+
 		}
+
 	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java
index e39f0412df4f61466aea73e25a78437b5d91396b..2666770b5d7a3548ec9765484589008386153881 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java
@@ -43,6 +43,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService;
 	  NachrichtServiceTestConfiguration.class }))
 @Configuration
 public class NachrichtenRestClientTestConfiguration {
+
 	@MockBean
 	FileService fileService;
 
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java
index ff7af87fd603945c9e75d1b5bdb7db7c0148229d..6e5847c6d948ba32a6349b6cbfc761a442bfaf06 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java
@@ -47,6 +47,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
 @SpringBootTest
 @SpringJUnitConfig(classes = { NachrichtServiceTestConfiguration.class })
 class NachrichtenServiceITCase {
+
 	public static final int OVERSIZED_EVENT_ID = 25;
 	public static final int OVERSIZED_ID = 25;
 	public static final int OVERSIZED_POSTFACH_ID = UUID.randomUUID().toString().length() + 1;
@@ -65,9 +66,10 @@ class NachrichtenServiceITCase {
 
 	@Nested
 	class TestSendNachricht {
+
 		@BeforeEach
 		void init() {
-			when(nachrichtEventService.getNachrichtEventById(anyString())).thenReturn(NachrichtEventTestFactory.createNachrichtEvent());
+			when(nachrichtEventService.getNachrichtEventById(anyString())).thenReturn(NachrichtEventTestFactory.create());
 			when(nachrichtenRemoteService.sendAnswer(any(ReplyNachricht.class), anyString())).thenReturn(CommandReferenceTestFactory.create());
 		}
 
@@ -127,6 +129,9 @@ class NachrichtenServiceITCase {
 				assertThatExceptionOfType(TechnicalException.class).isThrownBy(() -> nachrichtenService.sendRueckfrageAnswer(msg))
 				  .withMessageStartingWith("TechnicalException happened! Message: attachments: size must be between 0 and 20");
 			}
+
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java
index 536d887582fb096165912c23dc0fa96de27ea71c..be2a9f4a0b3102e32b0461b10eec0178a3f6f677 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java
@@ -51,6 +51,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory;
 
 @ExtendWith(MockitoExtension.class)
 class NachrichtenServiceTest {
+
 	@Spy
 	@InjectMocks
 	private NachrichtenService nachrichtenService;
@@ -63,10 +64,11 @@ class NachrichtenServiceTest {
 
 	@Nested
 	class TestGetRueckfrageHeadersOfPostfach {
+
 		@BeforeEach
 		void init() {
 			when(nachrichtEventService.getNachrichtEventsOfPostfachId(anyString())).thenReturn(
-			  List.of(NachrichtEventTestFactory.createNachrichtEvent()));
+			  List.of(NachrichtEventTestFactory.create()));
 			when(nachrichtenRemoteService.findRueckfrageHeads(any())).thenReturn(List.of(NachrichtTestFactory.createNachrichtHeader()));
 		}
 
@@ -101,11 +103,13 @@ class NachrichtenServiceTest {
 
 			assertThat(result.getFirst().getLinks()).isEqualTo(fullyLinkedHeader.getLinks());
 		}
+
 	}
 
 	@Nested
 	class TestGetRueckfrage {
-		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createNachrichtEvent();
+
+		private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create();
 
 		@BeforeEach
 		void init() {
@@ -131,11 +135,13 @@ class NachrichtenServiceTest {
 				() -> nachrichtenService.getRueckfrage(NachrichtTestFactory.ID, NachrichtTestFactory.NACHRICHT_EVENT_ID))
 			  .withMessage("Current user does not have the required trust level for the Rueckfrage with id '" + NachrichtTestFactory.ID + "'.");
 		}
+
 	}
 
 	@Nested
 	class TestGetNachrichtHeadersOfPostfachWithNachrichtenEventAvailable {
-		final NachrichtEvent event = NachrichtEventTestFactory.createNachrichtEvent();
+
+		final NachrichtEvent event = NachrichtEventTestFactory.create();
 
 		@BeforeEach
 		void init() {
@@ -164,10 +170,12 @@ class NachrichtenServiceTest {
 
 			assertThat(nachrichtHeaders.stream().findFirst()).isPresent().map(NachrichtHeader::postfachId).hasValue(event.postfachId());
 		}
+
 	}
 
 	@Nested
 	class TestGetNachrichtHeadersOfPostfachWithNoNachrichtenEventAvailable {
+
 		@BeforeEach
 		void init() {
 			when(nachrichtEventService.getNachrichtEventsOfPostfachId(anyString())).thenReturn(List.of());
@@ -186,15 +194,17 @@ class NachrichtenServiceTest {
 
 			verify(nachrichtenRemoteService, never()).findRueckfrageHeads(any(NachrichtEvent.class));
 		}
+
 	}
 
 	@Nested
 	class TestSendNachricht {
+
 		ReplyNachricht msg = ReplyNachrichtTestFactory.create();
 
 		@BeforeEach
 		void init() {
-			when(nachrichtEventService.getNachrichtEventById(anyString())).thenReturn(NachrichtEventTestFactory.createNachrichtEvent());
+			when(nachrichtEventService.getNachrichtEventById(anyString())).thenReturn(NachrichtEventTestFactory.create());
 			when(nachrichtenRemoteService.sendAnswer(any(ReplyNachricht.class), anyString())).thenReturn(CommandReferenceTestFactory.create());
 		}
 
@@ -211,10 +221,12 @@ class NachrichtenServiceTest {
 
 			assertThat(result).isInstanceOf(CommandReference.class);
 		}
+
 	}
 
 	@Nested
 	class TestValidation {
+
 		@Test
 		@SuppressWarnings("unchecked")
 		void shouldNotCallSendOnValidationError() {
@@ -222,5 +234,7 @@ class NachrichtenServiceTest {
 
 			assertThatException().isThrownBy(() -> nachrichtenService.sendRueckfrageAnswer(ReplyNachrichtTestFactory.create()));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java
index ca1cad65796e8514201319ec56e8c7663e9e5f0b..d4de599e420541a2907597549e92d72ccf9aa973 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java
@@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class ReplyNachrichtTest {
+
 	final ReplyNachricht replyNachricht = ReplyNachrichtTestFactory.create();
 
 	@Test
@@ -35,4 +36,5 @@ class ReplyNachrichtTest {
 
 		assertThat(replyNachrichtText).doesNotContain(ReplyNachrichtTestFactory.TEXT);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java
index e0b0bf7a544a6a045a0a26076cad35a9a9bc65d0..6937001db1e02e5bb0a269bd7793449bc9b616d1 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java
@@ -22,6 +22,7 @@
 package de.ozgcloud.antragsraum.nachricht;
 
 public class ReplyNachrichtTestFactory {
+
 	public static final String ID = "60af924b4f1a2560298b4567";
 	public static final String RUECKFRAGE_ID = "60af924b4f1a2560298b4568";
 	public static final String NACHRICHT_EVENT_ID = "60af924b4f1a2560298b4569";
@@ -39,4 +40,5 @@ public class ReplyNachrichtTestFactory {
 		  .postfachId(NachrichtTestFactory.POSTFACH_ID)
 		  .message(TEXT);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java
index c8fa4a617e0f8c8c0201683b179e445e0e5f8f21..857a199fbe20ca847cda9f4e44cea5453fc5ef4b 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java
@@ -28,6 +28,7 @@ import java.util.List;
 import org.junit.jupiter.api.Test;
 
 class RueckfrageHeaderMapperTest {
+
 	private final List<NachrichtHeader> nachrichtHeaders = List.of(NachrichtTestFactory.createNachrichtHeader(),
 	  NachrichtTestFactory.createNachrichtHeader());
 
@@ -85,4 +86,5 @@ class RueckfrageHeaderMapperTest {
 		assertThat(headers.getFirst().getStatus()).isEqualTo(NachrichtTestFactory.STATUS);
 		assertThat(headers.get(1).getStatus()).isEqualTo(NachrichtTestFactory.STATUS);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java
index 52b78297f13704bc48a891ec386e47c49a8a3ea0..612fd4ca9edf1f5dc2614c8c32750bf57ef6b307 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java
@@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class RueckfrageMapperTest {
+
 	private final Nachricht nachricht = NachrichtTestFactory.createNachricht();
 
 	@Test
@@ -83,4 +84,5 @@ class RueckfrageMapperTest {
 
 		assertThat(rueckfrage.getTrustLevel()).isEqualTo(NachrichtTestFactory.TRUST_LEVEL);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java
index 402647a4bba932e22064aa6f11e52e966def688b..f98120a016bf2bc5c310f0b5316bae3b20dbbe1f 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java
@@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class RueckfrageTest {
+
 	final Rueckfrage rueckfrage = RueckfrageTestFactory.createRueckfrage();
 
 	@Test
@@ -42,4 +43,5 @@ class RueckfrageTest {
 
 		assertThat(rueckfrageString).contains("antworten=<...masked for privacy..>");
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java
index 497c391de992ada4a9b524437ad1bc5a1b7b25de..3a42b06a22801225da63ead5eabacb31f293f5cb 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java
@@ -26,6 +26,7 @@ import static de.ozgcloud.antragsraum.nachricht.NachrichtTestFactory.*;
 import java.util.Collections;
 
 public class RueckfrageTestFactory {
+
 	public static final String VORGANG_TITLE = "Vorgang Test ";
 	public static final String TRUST_LEVEL = "LOW";
 
@@ -53,4 +54,5 @@ public class RueckfrageTestFactory {
 		  .accessible(true)
 		  .trustLevel(TRUST_LEVEL);
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java
index f147beb31e0736e63f6e78ae8725504b2cd6aa06..a7ab094feadbd266dc6e64c281ab8b8b7a4752ec 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java
@@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class TrustLevelMapperTest {
+
 	@Test
 	void shouldMapLowTrustLevel() {
 		assertThat(TrustLevelMapper.map(TrustLevelMapper.TRUST_LEVEL_LOW)).isEqualTo(TrustLevelMapper.TRUST_LEVEL_LOW);
@@ -60,4 +61,5 @@ class TrustLevelMapperTest {
 	void shouldMapLevel4TrustLevel() {
 		assertThat(TrustLevelMapper.map(TrustLevelMapper.TRUST_LEVEL_STORK_QAA_LEVEL_4)).isEqualTo(TrustLevelMapper.TRUST_LEVEL_HIGH);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandlerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandlerTest.java
index a40f9dc9777133746a647db1d604a2db877fb481..e7d4f8d78ed84e5b3c1a9bab816b0896ac1f76cc 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandlerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/AntragsraumLogoutSuccessHandlerTest.java
@@ -20,9 +20,14 @@
 
 package de.ozgcloud.antragsraum.security;
 
+import static org.mockito.Mockito.*;
+
+import java.io.IOException;
+
 import jakarta.servlet.ServletException;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
+
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
@@ -31,12 +36,9 @@ import org.mockito.Spy;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.security.core.Authentication;
 
-import java.io.IOException;
-
-import static org.mockito.Mockito.*;
-
 @ExtendWith(MockitoExtension.class)
 class AntragsraumLogoutSuccessHandlerTest {
+
 	@Spy
 	@InjectMocks
 	private AntragsraumLogoutSuccessHandler antragsraumLogoutSuccessHandler;
@@ -59,4 +61,5 @@ class AntragsraumLogoutSuccessHandlerTest {
 
 		verify(userDetailService, never()).logout(any(User.class));
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationControllerTest.java
index 9ab867230769f1fd56ddea5eee1a880c39c8f39a..b7efda21a70dd79b82156dbf663353936afe9f9e 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationControllerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationControllerTest.java
@@ -41,6 +41,7 @@ import org.springframework.security.web.authentication.logout.SecurityContextLog
 
 @ExtendWith(MockitoExtension.class)
 class AuthenticationControllerTest {
+
 	@Spy
 	@InjectMocks
 	private AuthenticationController authenticationController;
@@ -56,6 +57,7 @@ class AuthenticationControllerTest {
 
 	@Nested
 	class TestLogin {
+
 		private AuthCode code;
 
 		@BeforeEach
@@ -114,6 +116,7 @@ class AuthenticationControllerTest {
 
 	@Nested
 	class TestRefresh {
+
 		private AuthCode code;
 
 		@BeforeEach
@@ -145,10 +148,12 @@ class AuthenticationControllerTest {
 
 			verify(inMemoryUserDetailService).updateRefreshCodeOf(any(User.class));
 		}
+
 	}
 
 	@Nested
 	class TestLogout {
+
 		private final MockHttpServletRequest request = new MockHttpServletRequest();
 		private final MockHttpServletResponse response = new MockHttpServletResponse();
 		private final User user = UserTestFactory.create();
@@ -180,5 +185,7 @@ class AuthenticationControllerTest {
 
 			verify(logoutHandler).logout(eq(request), eq(response), any());
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationHelperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationHelperTest.java
index ddc9500135309d5539da86d9d516a7ab8a27cd36..46dd1caa2b3ced82b33bf55ec3ac64b24c50b389 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationHelperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/AuthenticationHelperTest.java
@@ -34,8 +34,10 @@ import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextHolder;
 
 class AuthenticationHelperTest {
+
 	@Nested
 	class TestGetAuthentication {
+
 		@Test
 		void shouldGetAuthenticatedUser() {
 			var authenticated = mock(RememberMeAuthenticationToken.class);
@@ -57,10 +59,12 @@ class AuthenticationHelperTest {
 
 			assertThatExceptionOfType(IllegalStateException.class).isThrownBy(AuthenticationHelper::getAuthentication);
 		}
+
 	}
 
 	@Nested
 	class TestGetSamlToken {
+
 		@Test
 		void shouldGetAuthenticatedSamlToken() {
 			var authenticated = mock(UsernamePasswordAuthenticationToken.class);
@@ -98,5 +102,7 @@ class AuthenticationHelperTest {
 
 			assertThat(samlToken).isEqualTo(AuthenticationHelper.NO_SAML_TOKEN);
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/BayernIdSaml2ExtensionTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/BayernIdSaml2ExtensionTest.java
index c0a5af1dbde1e7e2f71350f1add19cee851f2e80..894ced0076f331efdf0e4b489111ab009cedb83d 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/BayernIdSaml2ExtensionTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/BayernIdSaml2ExtensionTest.java
@@ -43,6 +43,7 @@ import org.opensaml.saml.saml2.core.Extensions;
 
 @ExtendWith(MockitoExtension.class)
 class BayernIdSaml2ExtensionTest {
+
 	private static final String URN_1_1 = "urn:1.1";
 	private static final String URN_2_2 = "urn.2.2";
 	private static final String ORGANIZATION_DISPLAY_NAME = "TestOrganizationDisplayName";
@@ -109,6 +110,7 @@ class BayernIdSaml2ExtensionTest {
 		private XSAny getChild(XMLObject authMethodElement) {
 			return (XSAny) authMethodElement.getOrderedChildren().getFirst();
 		}
+
 	}
 
 	@Nested
@@ -159,6 +161,7 @@ class BayernIdSaml2ExtensionTest {
 			  ((XSAny) child).getUnknownAttributes().containsValue(name)
 			).findFirst();
 		}
+
 	}
 
 	@Nested
@@ -225,6 +228,7 @@ class BayernIdSaml2ExtensionTest {
 		private XSAny getGrandChild(XMLObject authMethodElement) {
 			return (XSAny) authMethodElement.getOrderedChildren().getFirst().getOrderedChildren().getFirst();
 		}
+
 	}
 
 	@Nested
@@ -284,6 +288,7 @@ class BayernIdSaml2ExtensionTest {
 			  child.getElementQName().getLocalPart().equals(localName)
 			).findFirst();
 		}
+
 	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailServiceTest.java
index 5c7b9c4e01c945e78df70090b05b5a88fb7c9558..dbd09ac941481cf5be6739df4f92d0892e1b3607 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailServiceTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/InMemoryUserDetailServiceTest.java
@@ -20,9 +20,14 @@
 
 package de.ozgcloud.antragsraum.security;
 
-import com.google.common.cache.CacheBuilder;
-import com.google.common.testing.FakeTicker;
-import de.ozgcloud.antragsraum.common.NotFoundException;
+import static org.assertj.core.api.Assertions.*;
+
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.util.Date;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -30,214 +35,226 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.test.util.ReflectionTestUtils;
 
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.util.Date;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.testing.FakeTicker;
 
-import static org.assertj.core.api.Assertions.*;
+import de.ozgcloud.antragsraum.common.NotFoundException;
 
 @ExtendWith(MockitoExtension.class)
 class InMemoryUserDetailServiceTest {
-    private final InMemoryUserDetailService userDetailService = new InMemoryUserDetailService();
-    private final static String TEMP_ID = UUID.randomUUID().toString();
-    private User user;
-
-    @Nested
-    class TestAddingUser {
-        @BeforeEach
-        void setup() {
-            ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
-            user = UserTestFactory.create();
-            userDetailService.tmpTokenUserIdCache = CacheBuilder.newBuilder()
-                    .expireAfterAccess(10, TimeUnit.SECONDS)
-                    .build();
-            userDetailService.addUser(TEMP_ID, user);
-        }
-
-        @Test
-        void shouldAddUser() {
-            assertThat(userDetailService.getUser(UserTestFactory.USER_ID)).isNotNull();
-        }
-
-        @Test
-        void shouldSetExpiryTimeDateWhenAddUser() {
-            var date = ZonedDateTime.now(ZoneId.of("UTC")).plusMinutes(30L).toInstant();
-            assertThat(userDetailService.getUser(UserTestFactory.USER_ID).getTokenExpiresAt()).isCloseTo(date, 10);
-        }
-
-        @Test
-        void shouldGetUserByCode() {
-            assertThat(userDetailService.getUserByCode(TEMP_ID)).isNotNull();
-        }
-
-        @Test
-        void shouldThrowNotFoundExceptionWrongTempId() {
-            assertThatExceptionOfType(NotFoundException.class).isThrownBy(() -> userDetailService.getUserByCode("OTHER"));
-        }
-
-        @Test
-        void shouldLoadUser() {
-            userDetailService.addUser(TEMP_ID, user);
-
-            assertThat(userDetailService.loadUserByUsername(UserTestFactory.USER_NAME)).isNotNull();
-        }
-    }
-
-    @Nested
-    class TestSetUser {
-        @BeforeEach
-        void setup() {
-            ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
-            user = UserTestFactory.create();
-            userDetailService.tmpTokenUserIdCache = CacheBuilder.newBuilder()
-                    .expireAfterAccess(10, TimeUnit.SECONDS)
-                    .build();
-            userDetailService.setUser(TEMP_ID, user);
-        }
-
-        @Test
-        void shouldSetUser() {
-            assertThat(userDetailService.getUser(UserTestFactory.USER_ID)).isNotNull();
-        }
-
-        @Test
-        void shouldNotSetExpiryTimeDateWhenSetUser() {
-            assertThat(userDetailService.getUser(UserTestFactory.USER_ID).getTokenExpiresAt()).isEqualTo(user.getTokenExpiresAt());
-        }
-    }
-
-    @Nested
-    class TestExpiringCodeCache {
-        FakeTicker ticker = new FakeTicker();
-
-        @BeforeEach
-        void setup() {
-            ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
-
-            user = UserTestFactory.create();
-            userDetailService.tmpTokenUserIdCache = CacheBuilder.newBuilder()
-                    .expireAfterAccess(1, TimeUnit.SECONDS)
-                    .ticker(ticker)
-                    .build();
-            userDetailService.addUser(TEMP_ID, user);
-
-            userDetailService.getUserByCode(TEMP_ID);
-            ticker.advance(2, TimeUnit.SECONDS);
-        }
-
-        @Test
-        void shouldThrowExceptionWhenGetUserByCode() {
-            assertThatExceptionOfType(NotFoundException.class).isThrownBy(() -> userDetailService.getUserByCode(TEMP_ID));
-        }
-    }
-
-    @Nested
-    class TestUninitializedCache {
-        @Test
-        void shouldThrowExceptionWhenGetUserByCode() {
-            assertThatExceptionOfType(NotFoundException.class).isThrownBy(() -> userDetailService.getUserByCode(TEMP_ID));
-        }
-    }
-
-    @Nested
-    class TestLoadingSamlToken {
-        @BeforeEach
-        void setup() {
-            user = UserTestFactory.create();
-
-            ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
-            userDetailService.addUser(TEMP_ID, user);
-        }
-
-        @Test
-        void shouldReturnToken() {
-            assertThat(userDetailService.getSamlTokenOfUser(user.getId())).isEqualTo(UserTestFactory.SAML_TOKEN);
-        }
-    }
-
-    @Nested
-    class TestHandlingRefreshToken {
-        @BeforeEach
-        void setup() {
-            user = UserTestFactory.create();
-            ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
-            userDetailService.addUser(UUID.randomUUID().toString(), user);
-        }
-
-
-        @Test
-        void shouldGetUser() {
-            var updatedUser = userDetailService.getUser(new AuthCode(user.getRefreshCode()));
-
-            assertThat(updatedUser).isPresent();
-        }
-
-        @Test
-        void shouldNotGetUserBecauseUnknownRefreshCode() {
-            var user = userDetailService.getUser(new AuthCode(UUID.randomUUID().toString()));
-
-            assertThat(user).isNotPresent();
-        }
-
-        @Test
-        void shouldNotGetUserBecauseRefreshCodeExpired() {
-            var localUser = UserTestFactory.createBuilder()
-                    .tokenExpiresAt(Date.from(ZonedDateTime.now(ZoneId.of("UTC")).minusMinutes(31L).toInstant()))
-                    .build();
-            userDetailService.setUser(UUID.randomUUID().toString(), localUser);
-
-            var userOptional = userDetailService.getUser(new AuthCode(localUser.getRefreshCode()));
-
-            assertThat(userOptional).isNotPresent();
-        }
-
-        @Test
-        void shouldUpdateRefreshCode() {
-            var user = UserTestFactory.create();
-            userDetailService.updateRefreshCodeOf(user);
-
-            var updatedUser = userDetailService.getUser(user.getId());
-            assertThat(updatedUser.getRefreshCode()).isNotEqualTo(user.getRefreshCode());
-        }
-    }
-
-    @Nested
-    class TestUserMapCleanUp {
-        private User expiredUser;
-        private User validUser;
-
-        @BeforeEach
-        void setup() {
-            ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
-            validUser = UserTestFactory.create();
-            userDetailService.setUser(UUID.randomUUID().toString(), validUser);
-            expiredUser = UserTestFactory.createBuilder()
-                    .id(UUID.randomUUID().toString())
-                    .tokenExpiresAt(Date.from(ZonedDateTime.now(ZoneId.of("UTC")).minusMinutes(5L).toInstant())).build();
-            userDetailService.setUser(UUID.randomUUID().toString(), expiredUser);
-        }
-
-        @Test
-        void shouldRemoveExpiredUser() {
-            userDetailService.userCleanUp();
-
-            assertThat(userDetailService.getUser(expiredUser.getId())).isNull();
-        }
-
-        @Test
-        void shouldNotRemoveValidUser() {
-            userDetailService.userCleanUp();
-
-            assertThat(userDetailService.getUser(validUser.getId())).isNotNull();
-        }
-
-        @Test
-        void shouldRemoveOnLogout() {
-            userDetailService.logout(validUser);
-
-            assertThat(userDetailService.getUser(validUser.getId())).isNull();
-        }
-    }
+
+	private final InMemoryUserDetailService userDetailService = new InMemoryUserDetailService();
+	private final static String TEMP_ID = UUID.randomUUID().toString();
+	private User user;
+
+	@Nested
+	class TestAddingUser {
+
+		@BeforeEach
+		void setup() {
+			ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
+			user = UserTestFactory.create();
+			userDetailService.tmpTokenUserIdCache = CacheBuilder.newBuilder()
+			  .expireAfterAccess(10, TimeUnit.SECONDS)
+			  .build();
+			userDetailService.addUser(TEMP_ID, user);
+		}
+
+		@Test
+		void shouldAddUser() {
+			assertThat(userDetailService.getUser(UserTestFactory.USER_ID)).isNotNull();
+		}
+
+		@Test
+		void shouldSetExpiryTimeDateWhenAddUser() {
+			var date = ZonedDateTime.now(ZoneId.of("UTC")).plusMinutes(30L).toInstant();
+			assertThat(userDetailService.getUser(UserTestFactory.USER_ID).getTokenExpiresAt()).isCloseTo(date, 10);
+		}
+
+		@Test
+		void shouldGetUserByCode() {
+			assertThat(userDetailService.getUserByCode(TEMP_ID)).isNotNull();
+		}
+
+		@Test
+		void shouldThrowNotFoundExceptionWrongTempId() {
+			assertThatExceptionOfType(NotFoundException.class).isThrownBy(() -> userDetailService.getUserByCode("OTHER"));
+		}
+
+		@Test
+		void shouldLoadUser() {
+			userDetailService.addUser(TEMP_ID, user);
+
+			assertThat(userDetailService.loadUserByUsername(UserTestFactory.USER_NAME)).isNotNull();
+		}
+
+	}
+
+	@Nested
+	class TestSetUser {
+
+		@BeforeEach
+		void setup() {
+			ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
+			user = UserTestFactory.create();
+			userDetailService.tmpTokenUserIdCache = CacheBuilder.newBuilder()
+			  .expireAfterAccess(10, TimeUnit.SECONDS)
+			  .build();
+			userDetailService.setUser(TEMP_ID, user);
+		}
+
+		@Test
+		void shouldSetUser() {
+			assertThat(userDetailService.getUser(UserTestFactory.USER_ID)).isNotNull();
+		}
+
+		@Test
+		void shouldNotSetExpiryTimeDateWhenSetUser() {
+			assertThat(userDetailService.getUser(UserTestFactory.USER_ID).getTokenExpiresAt()).isEqualTo(user.getTokenExpiresAt());
+		}
+
+	}
+
+	@Nested
+	class TestExpiringCodeCache {
+
+		FakeTicker ticker = new FakeTicker();
+
+		@BeforeEach
+		void setup() {
+			ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
+
+			user = UserTestFactory.create();
+			userDetailService.tmpTokenUserIdCache = CacheBuilder.newBuilder()
+			  .expireAfterAccess(1, TimeUnit.SECONDS)
+			  .ticker(ticker)
+			  .build();
+			userDetailService.addUser(TEMP_ID, user);
+
+			userDetailService.getUserByCode(TEMP_ID);
+			ticker.advance(2, TimeUnit.SECONDS);
+		}
+
+		@Test
+		void shouldThrowExceptionWhenGetUserByCode() {
+			assertThatExceptionOfType(NotFoundException.class).isThrownBy(() -> userDetailService.getUserByCode(TEMP_ID));
+		}
+
+	}
+
+	@Nested
+	class TestUninitializedCache {
+
+		@Test
+		void shouldThrowExceptionWhenGetUserByCode() {
+			assertThatExceptionOfType(NotFoundException.class).isThrownBy(() -> userDetailService.getUserByCode(TEMP_ID));
+		}
+
+	}
+
+	@Nested
+	class TestLoadingSamlToken {
+
+		@BeforeEach
+		void setup() {
+			user = UserTestFactory.create();
+
+			ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
+			userDetailService.addUser(TEMP_ID, user);
+		}
+
+		@Test
+		void shouldReturnToken() {
+			assertThat(userDetailService.getSamlTokenOfUser(user.getId())).isEqualTo(UserTestFactory.SAML_TOKEN);
+		}
+
+	}
+
+	@Nested
+	class TestHandlingRefreshToken {
+
+		@BeforeEach
+		void setup() {
+			user = UserTestFactory.create();
+			ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
+			userDetailService.addUser(UUID.randomUUID().toString(), user);
+		}
+
+		@Test
+		void shouldGetUser() {
+			var updatedUser = userDetailService.getUser(new AuthCode(user.getRefreshCode()));
+
+			assertThat(updatedUser).isPresent();
+		}
+
+		@Test
+		void shouldNotGetUserBecauseUnknownRefreshCode() {
+			var user = userDetailService.getUser(new AuthCode(UUID.randomUUID().toString()));
+
+			assertThat(user).isNotPresent();
+		}
+
+		@Test
+		void shouldNotGetUserBecauseRefreshCodeExpired() {
+			var localUser = UserTestFactory.createBuilder()
+			  .tokenExpiresAt(Date.from(ZonedDateTime.now(ZoneId.of("UTC")).minusMinutes(31L).toInstant()))
+			  .build();
+			userDetailService.setUser(UUID.randomUUID().toString(), localUser);
+
+			var userOptional = userDetailService.getUser(new AuthCode(localUser.getRefreshCode()));
+
+			assertThat(userOptional).isNotPresent();
+		}
+
+		@Test
+		void shouldUpdateRefreshCode() {
+			var user = UserTestFactory.create();
+			userDetailService.updateRefreshCodeOf(user);
+
+			var updatedUser = userDetailService.getUser(user.getId());
+			assertThat(updatedUser.getRefreshCode()).isNotEqualTo(user.getRefreshCode());
+		}
+
+	}
+
+	@Nested
+	class TestUserMapCleanUp {
+
+		private User expiredUser;
+		private User validUser;
+
+		@BeforeEach
+		void setup() {
+			ReflectionTestUtils.setField(userDetailService, "jwtExpirationMinutes", 30L);
+			validUser = UserTestFactory.create();
+			userDetailService.setUser(UUID.randomUUID().toString(), validUser);
+			expiredUser = UserTestFactory.createBuilder()
+			  .id(UUID.randomUUID().toString())
+			  .tokenExpiresAt(Date.from(ZonedDateTime.now(ZoneId.of("UTC")).minusMinutes(5L).toInstant())).build();
+			userDetailService.setUser(UUID.randomUUID().toString(), expiredUser);
+		}
+
+		@Test
+		void shouldRemoveExpiredUser() {
+			userDetailService.userCleanUp();
+
+			assertThat(userDetailService.getUser(expiredUser.getId())).isNull();
+		}
+
+		@Test
+		void shouldNotRemoveValidUser() {
+			userDetailService.userCleanUp();
+
+			assertThat(userDetailService.getUser(validUser.getId())).isNotNull();
+		}
+
+		@Test
+		void shouldRemoveOnLogout() {
+			userDetailService.logout(validUser);
+
+			assertThat(userDetailService.getUser(validUser.getId())).isNull();
+		}
+
+	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenFilterTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenFilterTest.java
index 1f21b06deca298ab3cb73b86c8a76b6256dbc06c..0a3a680eb721dadb63ffa165cbc425b427133496 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenFilterTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenFilterTest.java
@@ -51,6 +51,7 @@ import io.jsonwebtoken.JwtParser;
 
 @ExtendWith(MockitoExtension.class)
 class JwtTokenFilterTest {
+
 	@Mock
 	HttpServletRequest request;
 	@Mock
@@ -164,10 +165,12 @@ class JwtTokenFilterTest {
 			when(tokenVerifier.getJws(any(), any())).thenReturn(Optional.of(jws));
 			when(userDetailService.loadUserByUsername(any())).thenReturn(UserTestFactory.create());
 		}
+
 	}
 
 	@Nested
 	class TestSettingSecurityContext {
+
 		@BeforeEach
 		void setup() {
 			User user = UserTestFactory.create();
@@ -214,10 +217,12 @@ class JwtTokenFilterTest {
 
 			assertThat(((UsernamePasswordAuthenticationToken) auth).getAuthorities()).isNotNull();
 		}
+
 	}
 
 	@Nested
 	class TestLoadingTokenFromRequest {
+
 		@BeforeEach
 		void setup() {
 			User user = UserTestFactory.create();
@@ -252,10 +257,12 @@ class JwtTokenFilterTest {
 
 			assertThat(tokenOptional).isPresent().map(tokenValue -> assertThat(tokenValue).isEqualTo(token));
 		}
+
 	}
 
 	@Nested
 	class TestNullHandling {
+
 		@Test
 		void shouldThrowIllegalStateException() {
 			assertThatIllegalArgumentException().isThrownBy(() -> tokenFilter.createAuthentication(null, null, null));
@@ -265,5 +272,7 @@ class JwtTokenFilterTest {
 		void shouldThrowIllegalArgumentException() {
 			assertThatIllegalArgumentException().isThrownBy(() -> tokenFilter.doFilterInternal(null, null, null));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenProviderTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenProviderTest.java
index a27a25c9fe947249770ef935d7a59f83e2b6520f..57a5a35b524bdfbe880f1576d7ef9cde7b5a3783 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenProviderTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenProviderTest.java
@@ -37,6 +37,7 @@ import org.springframework.test.util.ReflectionTestUtils;
 
 @ExtendWith(MockitoExtension.class)
 class JwtTokenProviderTest {
+
 	private static final String SECRET = RandomStringUtils.random(256);
 
 	JwtTokenProvider provider = new JwtTokenProvider();
@@ -48,6 +49,7 @@ class JwtTokenProviderTest {
 
 	@Nested
 	class TestJwtGeneration {
+
 		@Test
 		void shouldGenerateToken() {
 			assertThat(provider.generate(UserTestFactory.create())).isNotNull();
@@ -68,5 +70,7 @@ class JwtTokenProviderTest {
 			var expIndex = token.indexOf("\"exp\":");
 			return Long.valueOf(token.substring(expIndex + 6, expIndex + 16));
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenVerifierTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenVerifierTest.java
index d03f3a4473bface487b6ec5ce37d5d8aa5423a3e..da1d500f6f22ff938e388203a224c5634a0f5d68 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenVerifierTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/JwtTokenVerifierTest.java
@@ -40,6 +40,7 @@ import io.jsonwebtoken.security.Keys;
 import io.jsonwebtoken.security.SignatureException;
 
 class JwtTokenVerifierTest {
+
 	private static final String SECRET = RandomStringUtils.random(256);
 	JwtTokenVerifier verifier = new JwtTokenVerifier();
 
@@ -113,5 +114,7 @@ class JwtTokenVerifierTest {
 			  .claim("trustlevel", UserTestFactory.TRUST_LEVEL)
 			  .compact();
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithmTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithmTest.java
index b8f40ffe89f7d9a50fe2795378dbab1127eb3ec1..b36e4940cf5f0dc9f4a26f8ae7b052573dd3bc94 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithmTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/SHA256withRSAAndMGF1SignatureAlgorithmTest.java
@@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 
 class SHA256withRSAAndMGF1SignatureAlgorithmTest {
+
 	@Test
 	void shouldGetKey() {
 		var algorithm = new SHA256withRSAAndMGF1SignatureAlgorithm();
@@ -60,4 +61,5 @@ class SHA256withRSAAndMGF1SignatureAlgorithmTest {
 
 		assertThat(algorithm.getDigest()).isEqualTo(SHA256_ALGORITHM_ID);
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategyTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategyTest.java
index ac62a9da2d523997529fc7722e205813e6120d1f..6dbc3332ad4bde38b6223f76897077330f83ff3c 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategyTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/SamlRedirectStrategyTest.java
@@ -41,6 +41,7 @@ import org.springframework.security.saml2.provider.service.authentication.Saml2A
 
 @ExtendWith(MockitoExtension.class)
 class SamlRedirectStrategyTest {
+
 	private static final String URL = "http://test";
 
 	@Mock
@@ -62,6 +63,7 @@ class SamlRedirectStrategyTest {
 
 	@Nested
 	class TestRedirect {
+
 		@BeforeEach
 		void setup() {
 			when(request.getContextPath()).thenReturn(URL);
@@ -96,10 +98,12 @@ class SamlRedirectStrategyTest {
 
 			verify(response).sendRedirect(matches(URL + "\\?code=*"));
 		}
+
 	}
 
 	@Nested
 	class TestRedirectWithConfiguredUrl {
+
 		private final String CONFIGURED_REDIRECT_URL = "https://redirect.me";
 
 		@BeforeEach
@@ -114,5 +118,7 @@ class SamlRedirectStrategyTest {
 
 			verify(response).sendRedirect(CONFIGURED_REDIRECT_URL + "?code=abc");
 		}
+
 	}
+
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandlerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandlerTest.java
index f498d5a97bffb753474c414be1010cb92dc5814c..93585b4c090235ffbd48b40e71d039483e47c4d9 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandlerTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/SamlUrlAuthenticationSuccessHandlerTest.java
@@ -44,6 +44,7 @@ import org.springframework.security.core.userdetails.UserDetailsService;
 
 @ExtendWith(MockitoExtension.class)
 class SamlUrlAuthenticationSuccessHandlerTest {
+
 	private static final String HTTP_TEST = "http://test";
 	private static final String REDIRECT_URL = "http://redirect";
 
@@ -54,6 +55,7 @@ class SamlUrlAuthenticationSuccessHandlerTest {
 
 	@Nested
 	class TestOnSuccess {
+
 		@Mock
 		private HttpServletRequest request;
 		@Mock
@@ -83,10 +85,12 @@ class SamlUrlAuthenticationSuccessHandlerTest {
 
 			verify(handler).clearAuthenticationAttributes(any());
 		}
+
 	}
 
 	@Nested
 	class TestInit {
+
 		@Test
 		void shouldGetRedirectUrl() {
 			successHandler = new SamlUrlAuthenticationSuccessHandler(REDIRECT_URL, userService);
@@ -104,10 +108,12 @@ class SamlUrlAuthenticationSuccessHandlerTest {
 
 			assertThat(url).isEqualTo("/");
 		}
+
 	}
 
 	@Nested
 	class TestWithAuthentication {
+
 		@Mock
 		private Authentication authentication;
 
@@ -133,10 +139,12 @@ class SamlUrlAuthenticationSuccessHandlerTest {
 			assertThatExceptionOfType(IllegalStateException.class).isThrownBy(() -> successHandler.determineTargetUrl(authentication))
 			  .withMessage("Invalid role! User is missing role ROLE_USER");
 		}
+
 	}
 
 	@Nested
 	class TestClearLoginSession {
+
 		@Mock
 		private HttpServletRequest request;
 
@@ -161,10 +169,12 @@ class SamlUrlAuthenticationSuccessHandlerTest {
 			verify(request, times(1)).getSession(false);
 			verify(session).removeAttribute(any());
 		}
+
 	}
 
 	@Nested
 	class TestHandle {
+
 		@Mock
 		private HttpServletRequest request;
 		@Mock
@@ -199,6 +209,7 @@ class SamlUrlAuthenticationSuccessHandlerTest {
 
 			verify(response, never()).sendRedirect(anyString());
 		}
+
 	}
 
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/SecurityProviderTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/SecurityProviderTest.java
index 395077c2c3afec293d50030690e71833bf1e79f6..67a3fe4324e5b5aaeff4897975baa652b3f7111a 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/SecurityProviderTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/SecurityProviderTest.java
@@ -36,12 +36,14 @@ import org.opensaml.core.config.ConfigurationService;
 import org.opensaml.xmlsec.algorithm.AlgorithmRegistry;
 
 public class SecurityProviderTest {
+
 	private static final String BOUNCY_CASTLE_PROVIDER_ID = "BC";
 
 	private final SecurityProvider securityProvider = new SecurityProvider();
 
 	@Nested
 	class TestAfterPropertiesSet {
+
 		@BeforeEach
 		void init() {
 			Security.removeProvider(BOUNCY_CASTLE_PROVIDER_ID);
@@ -86,5 +88,7 @@ public class SecurityProviderTest {
 				  SHA256withRSAAndMGF1SignatureAlgorithm.class);
 			}
 		}
+
 	}
+
 }
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/UserMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/UserMapperTest.java
index 219af424a39ab69a503186c94ddff007ab35be0e..a12042e77f7fb21f0c70d894555277d5176163a2 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/UserMapperTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/UserMapperTest.java
@@ -20,6 +20,13 @@
 
 package de.ozgcloud.antragsraum.security;
 
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -28,100 +35,95 @@ import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.security.saml2.provider.service.authentication.DefaultSaml2AuthenticatedPrincipal;
 import org.springframework.security.saml2.provider.service.authentication.Saml2Authentication;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
 @ExtendWith(MockitoExtension.class)
 class UserMapperTest {
-    static final String SAML_TOKEN = "token";
-    @Mock
-    private Saml2Authentication auth;
 
-    Map<String, List<Object>> attributes;
+	static final String SAML_TOKEN = "token";
+	@Mock
+	private Saml2Authentication auth;
+
+	Map<String, List<Object>> attributes;
+
+	@BeforeEach
+	void setup() {
+		when(auth.getSaml2Response()).thenReturn(SAML_TOKEN);
 
-    @BeforeEach
-    void setup() {
-        when(auth.getSaml2Response()).thenReturn(SAML_TOKEN);
+		attributes = new HashMap<>();
+		attributes.put(UserMapper.NACHNAME_URN, List.of(UserTestFactory.LAST_NAME));
+		attributes.put(UserMapper.VORNAME_URN, List.of(UserTestFactory.FIRST_NAME));
+		attributes.put(UserMapper.POSTKORB_HANDLE_URN, List.of(UserTestFactory.POSTKORB_HANDLE));
+		attributes.put(UserMapper.VERTRAUENSNIVEAU_URN, List.of(UserTestFactory.TRUST_LEVEL));
+		attributes.put(UserMapper.BK2_URN, List.of(UserTestFactory.USER_NAME));
 
-        attributes = new HashMap<>();
-        attributes.put(UserMapper.NACHNAME_URN, List.of(UserTestFactory.LAST_NAME));
-        attributes.put(UserMapper.VORNAME_URN, List.of(UserTestFactory.FIRST_NAME));
-        attributes.put(UserMapper.POSTKORB_HANDLE_URN, List.of(UserTestFactory.POSTKORB_HANDLE));
-        attributes.put(UserMapper.VERTRAUENSNIVEAU_URN, List.of(UserTestFactory.TRUST_LEVEL));
-        attributes.put(UserMapper.BK2_URN, List.of(UserTestFactory.USER_NAME));
+		var principal = new DefaultSaml2AuthenticatedPrincipal(UserTestFactory.USER_ID, attributes);
+		when(auth.getPrincipal()).thenReturn(principal);
+	}
 
-        var principal = new DefaultSaml2AuthenticatedPrincipal(UserTestFactory.USER_ID, attributes);
-        when(auth.getPrincipal()).thenReturn(principal);
-    }
+	@Test
+	void shouldGetUsername() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetUsername() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getUsername()).isEqualTo(UserTestFactory.USER_ID);
+	}
 
-        assertThat(user.getUsername()).isEqualTo(UserTestFactory.USER_ID);
-    }
+	@Test
+	void shouldGetFirstName() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetFirstName() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getFirstName()).isEqualTo(UserTestFactory.FIRST_NAME);
+	}
 
-        assertThat(user.getFirstName()).isEqualTo(UserTestFactory.FIRST_NAME);
-    }
+	@Test
+	void shouldGetLastName() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetLastName() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getLastName()).isEqualTo(UserTestFactory.LAST_NAME);
+	}
 
-        assertThat(user.getLastName()).isEqualTo(UserTestFactory.LAST_NAME);
-    }
+	@Test
+	void shouldGetPostkornHandle() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetPostkornHandle() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getPostkorbHandle()).isEqualTo(UserTestFactory.POSTKORB_HANDLE);
+	}
 
-        assertThat(user.getPostkorbHandle()).isEqualTo(UserTestFactory.POSTKORB_HANDLE);
-    }
+	@Test
+	void shouldGetTrustLevel() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetTrustLevel() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getTrustLevel()).isEqualTo(UserTestFactory.TRUST_LEVEL);
+	}
 
-        assertThat(user.getTrustLevel()).isEqualTo(UserTestFactory.TRUST_LEVEL);
-    }
+	@Test
+	void shouldGetSaml2Token() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetSaml2Token() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getSamlToken()).isEqualTo(SAML_TOKEN);
+	}
 
-        assertThat(user.getSamlToken()).isEqualTo(SAML_TOKEN);
-    }
+	@Test
+	void shouldGetUnknownAttributesEmpty() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldGetUnknownAttributesEmpty() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getUnknownAttributes()).isEmpty();
+	}
 
-        assertThat(user.getUnknownAttributes()).isEmpty();
-    }
+	@Test
+	void shouldGetUnknownAttributes() {
+		attributes.put("other", List.of("value"));
+		var principal = new DefaultSaml2AuthenticatedPrincipal(UserTestFactory.USER_ID, attributes);
+		when(auth.getPrincipal()).thenReturn(principal);
 
-    @Test
-    void shouldGetUnknownAttributes() {
-        attributes.put("other", List.of("value"));
-        var principal = new DefaultSaml2AuthenticatedPrincipal(UserTestFactory.USER_ID, attributes);
-        when(auth.getPrincipal()).thenReturn(principal);
+		var user = UserMapper.map(auth);
 
-        var user = UserMapper.map(auth);
+		assertThat(user.getUnknownAttributes()).isNotEmpty().hasSize(1);
+	}
 
-        assertThat(user.getUnknownAttributes()).isNotEmpty().hasSize(1);
-    }
+	@Test
+	void shouldSetRefreshCode() {
+		var user = UserMapper.map(auth);
 
-    @Test
-    void shouldSetRefreshCode() {
-        var user = UserMapper.map(auth);
+		assertThat(user.getRefreshCode()).isNotEmpty();
+	}
 
-        assertThat(user.getRefreshCode()).isNotEmpty();
-    }
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/UserTest.java b/server/src/test/java/de/ozgcloud/antragsraum/security/UserTest.java
index 715c7b9af3cf2868b15ca14420aa5140194beef7..ce0085d74911400b7814e73a1b4131b51f21163d 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/UserTest.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/UserTest.java
@@ -20,35 +20,37 @@
 
 package de.ozgcloud.antragsraum.security;
 
-import org.junit.jupiter.api.Test;
+import static org.assertj.core.api.Assertions.*;
 
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.Date;
 
-import static org.assertj.core.api.Assertions.*;
+import org.junit.jupiter.api.Test;
 
 class UserTest {
 
-    @Test
-    void getAuthorities() {
-        var user = UserTestFactory.create();
+	@Test
+	void getAuthorities() {
+		var user = UserTestFactory.create();
+
+		assertThat(user.getAuthorities()).isNotNull();
+		assertThat(user.getAuthorities().iterator().next().getAuthority()).isEqualTo(DefaultRole.ROLE);
+	}
 
-        assertThat(user.getAuthorities()).isNotNull();
-        assertThat(user.getAuthorities().iterator().next().getAuthority()).isEqualTo(DefaultRole.ROLE);
-    }
+	@Test
+	void credentialsShouldBeExpired() {
+		var expiredUser = UserTestFactory.createBuilder().tokenExpiresAt(Date.from(LocalDateTime.now().minusDays(1).toInstant(ZoneOffset.UTC)))
+		  .build();
 
-    @Test
-    void credentialsShouldBeExpired() {
-        var expiredUser = UserTestFactory.createBuilder().tokenExpiresAt(Date.from(LocalDateTime.now().minusDays(1).toInstant(ZoneOffset.UTC))).build();
+		assertThat(expiredUser.isCredentialsNonExpired()).isFalse();
+	}
 
-        assertThat(expiredUser.isCredentialsNonExpired()).isFalse();
-    }
+	@Test
+	void credentialsShouldNotBeExpired() {
+		var user = UserTestFactory.createBuilder().tokenExpiresAt(Date.from(LocalDateTime.now().plusHours(1).toInstant(ZoneOffset.UTC))).build();
 
-    @Test
-    void credentialsShouldNotBeExpired() {
-        var user = UserTestFactory.createBuilder().tokenExpiresAt(Date.from(LocalDateTime.now().plusHours(1).toInstant(ZoneOffset.UTC))).build();
+		assertThat(user.isCredentialsNonExpired()).isTrue();
+	}
 
-        assertThat(user.isCredentialsNonExpired()).isTrue();
-    }
 }
\ No newline at end of file
diff --git a/server/src/test/java/de/ozgcloud/antragsraum/security/UserTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/security/UserTestFactory.java
index 60a2d0bf1ae9d583c26e7385f6421235846ffb11..f4f7046fbd17d01d2d1500f020d09329c1c98507 100644
--- a/server/src/test/java/de/ozgcloud/antragsraum/security/UserTestFactory.java
+++ b/server/src/test/java/de/ozgcloud/antragsraum/security/UserTestFactory.java
@@ -26,6 +26,7 @@ import java.util.Date;
 import java.util.UUID;
 
 public class UserTestFactory {
+
 	static final String USER_ID = UUID.randomUUID().toString();
 	static final String REFRESH_TOKEN = UUID.randomUUID().toString();
 	static final String FIRST_NAME = "Paul";
@@ -52,4 +53,5 @@ public class UserTestFactory {
 		  .tokenExpiresAt(TOKEN_EXPIRATION)
 		  .trustLevel(TRUST_LEVEL);
 	}
+
 }