diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResource.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResource.java
index 16786bb926dc4b40fa2152892d0f772eaf58b9cc..46c16f0f094200e70e59e685f8db5d6b93fc2528 100644
--- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResource.java
+++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResource.java
@@ -53,7 +53,7 @@ public class KeystoreResource {
         return sg;
     }
 
-    @PreAuthorize("@smpAuthorizationService.systemAdministrator || @smpAuthorizationService.isCurrentlyLoggedIn(#userEncId)")
+    @PreAuthorize("@smpAuthorizationService.systemAdministrator AND @smpAuthorizationService.isCurrentlyLoggedIn(#userEncId)")
     @PostMapping(path = "/{user-enc-id}/upload/{keystoreType}/{password}", produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_OCTET_STREAM_VALUE)
     public KeystoreImportResult uploadKeystore(@PathVariable("user-enc-id") String userEncId,
                                                @PathVariable("keystoreType") String keystoreType,
@@ -77,7 +77,7 @@ public class KeystoreResource {
         return keystoreImportResult;
     }
 
-    @PreAuthorize("@smpAuthorizationService.systemAdministrator || @smpAuthorizationService.isCurrentlyLoggedIn(#userEncId)")
+    @PreAuthorize("@smpAuthorizationService.systemAdministrator AND @smpAuthorizationService.isCurrentlyLoggedIn(#userEncId)")
     @DeleteMapping(value = "/{user-enc-id}/delete/{alias}", produces = APPLICATION_JSON_VALUE)
     public KeystoreImportResult deleteCertificate(@PathVariable("user-enc-id") String userEncId,
                                                   @PathVariable("alias") String alias) {
diff --git a/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResourceTest.java b/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResourceTest.java
index 94fdb36bc5cd7df5eae91e795c27b3e5d68491d6..94371e77683269a87d7f3d7d859a2bda6d5d578e 100644
--- a/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResourceTest.java
+++ b/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/internal/KeystoreResourceTest.java
@@ -5,37 +5,33 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import eu.europa.ec.edelivery.smp.data.ui.CertificateRO;
 import eu.europa.ec.edelivery.smp.data.ui.KeystoreImportResult;
 import eu.europa.ec.edelivery.smp.data.ui.ServiceResult;
+import eu.europa.ec.edelivery.smp.data.ui.UserRO;
 import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService;
 import eu.europa.ec.edelivery.smp.test.SmpTestWebAppConfig;
+import eu.europa.ec.edelivery.smp.test.testutils.MockMvcUtils;
 import eu.europa.ec.edelivery.smp.test.testutils.X509CertificateTestUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.mock.web.MockServletContext;
-import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers;
+import org.springframework.mock.web.MockHttpSession;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.jdbc.Sql;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.test.context.web.WebAppConfiguration;
 import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.MvcResult;
-import org.springframework.test.web.servlet.request.RequestPostProcessor;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-import org.springframework.web.context.ContextLoaderListener;
 import org.springframework.web.context.WebApplicationContext;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
+import static eu.europa.ec.edelivery.smp.test.testutils.MockMvcUtils.*;
 import static eu.europa.ec.edelivery.smp.ui.ResourceConstants.CONTEXT_PATH_INTERNAL_KEYSTORE;
 import static org.junit.Assert.*;
 import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
-import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic;
 import static org.springframework.test.context.jdbc.Sql.ExecutionPhase.BEFORE_TEST_METHOD;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -59,31 +55,22 @@ public class KeystoreResourceTest {
     private UIKeystoreService uiKeystoreService;
 
     private MockMvc mvc;
-    private static final RequestPostProcessor SYSTEM_CREDENTIALS = httpBasic("sys_admin", "test123");
 
     @Before
     public void setup() throws IOException {
         X509CertificateTestUtils.reloadKeystores();
 
-        mvc = MockMvcBuilders.webAppContextSetup(webAppContext)
-                .apply(SecurityMockMvcConfigurers.springSecurity())
-                .build();
-        initServletContext();
+        mvc = MockMvcUtils.initializeMockMvc(webAppContext);
         uiKeystoreService.refreshData();
     }
 
-    private void initServletContext() {
-        MockServletContext sc = new MockServletContext("");
-        ServletContextListener listener = new ContextLoaderListener(webAppContext);
-        ServletContextEvent event = new ServletContextEvent(sc);
-    }
-
     @Test
     public void getKeyCertificateList() throws Exception {
         // given when
         int countStart = uiKeystoreService.getKeystoreEntriesList().size();
+        MockHttpSession session = loginWithSystemAdmin(mvc);
         MvcResult result = mvc.perform(get(PATH)
-                .with(SYSTEM_CREDENTIALS)
+                .session(session)
                 .with(csrf()))
                 .andExpect(status().isOk()).andReturn();
 
@@ -106,8 +93,11 @@ public class KeystoreResourceTest {
     @Test
     public void uploadKeystoreFailed() throws Exception {
         // given when
-        MvcResult result = mvc.perform(post(PATH + "/3/upload/JKS/test123")
-                .with(SYSTEM_CREDENTIALS)
+        // login
+        MockHttpSession session = loginWithSystemAdmin(mvc);
+        UserRO userRO = getLoggedUserData(mvc, session);
+        MvcResult result = mvc.perform(post(PATH + "/" + userRO.getUserId() + "/upload/JKS/test123")
+                .session(session)
                 .with(csrf())
                 .content("invalid keystore")).
                 andExpect(status().isOk()).andReturn();
@@ -122,10 +112,12 @@ public class KeystoreResourceTest {
 
     @Test
     public void uploadKeystoreInvalidPassword() throws Exception {
-
+        // login
+        MockHttpSession session = loginWithSystemAdmin(mvc);
+        UserRO userRO = getLoggedUserData(mvc, session);
         // given when
-        MvcResult result = mvc.perform(post(PATH + "/3/upload/JKS/NewPassword1234")
-                .with(SYSTEM_CREDENTIALS)
+        MvcResult result = mvc.perform(post(PATH + "/" + userRO.getUserId() + "/upload/JKS/NewPassword1234")
+                .session(session)
                 .with(csrf())
                 .content(Files.readAllBytes(keystore)))
                 .andExpect(status().isOk()).andReturn();
@@ -141,10 +133,12 @@ public class KeystoreResourceTest {
     @Test
     public void uploadKeystoreOK() throws Exception {
 
+        MockHttpSession session = loginWithSystemAdmin(mvc);
+        UserRO userRO = getLoggedUserData(mvc, session);
         int countStart = uiKeystoreService.getKeystoreEntriesList().size();
         // given when
-        MvcResult result = mvc.perform(post(PATH + "/3/upload/JKS/test123")
-                .with(SYSTEM_CREDENTIALS)
+        MvcResult result = mvc.perform(post(PATH + "/" + userRO.getUserId() + "/upload/JKS/test123")
+                .session(session)
                 .with(csrf())
                 .content(Files.readAllBytes(keystore)))
                 .andExpect(status().isOk()).andReturn();
@@ -160,11 +154,12 @@ public class KeystoreResourceTest {
 
     @Test
     public void deleteKeystoreEntryOK() throws Exception {
-
+        MockHttpSession session = loginWithSystemAdmin(mvc);
+        UserRO userRO = getLoggedUserData(mvc, session);
         int countStart = uiKeystoreService.getKeystoreEntriesList().size();
         // given when
-        MvcResult result = mvc.perform(delete(PATH + "/3/delete/second_domain_alias")
-                .with(SYSTEM_CREDENTIALS)
+        MvcResult result = mvc.perform(delete(PATH + "/" + userRO.getUserId() + "/delete/second_domain_alias")
+                .session(session)
                 .with(csrf())
                 .content(Files.readAllBytes(keystore)))
                 .andExpect(status().isOk()).andReturn();
@@ -175,6 +170,7 @@ public class KeystoreResourceTest {
 
         assertNotNull(res);
         assertNull(res.getErrorMessage());
+        uiKeystoreService.refreshData();
         assertEquals(countStart - 1, uiKeystoreService.getKeystoreEntriesList().size());
     }