From d528682b510ecaae4a96e0fe80d3d9219da568c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Tue, 2 Apr 2019 08:21:47 +0200 Subject: [PATCH 1/4] Disable creation of scmadmin with system parameter --- .../src/main/java/sonia/scm/boot/SetupContextListener.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java b/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java index 427e9f5dd7..d4f352e393 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java @@ -27,7 +27,10 @@ public class SetupContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { - administrationContext.runAsAdmin(SetupAction.class); + String skipAdminCreation = System.getProperty("skipAdminCreation"); + if (skipAdminCreation == null || "false".equalsIgnoreCase(skipAdminCreation)) { + administrationContext.runAsAdmin(SetupAction.class); + } } @Override From 460ab22f56bf962e4077ca440f874700a3c308f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Tue, 2 Apr 2019 09:42:50 +0200 Subject: [PATCH 2/4] Add logging --- .../src/main/java/sonia/scm/boot/SetupContextListener.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java b/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java index d4f352e393..2ed9307516 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java @@ -2,6 +2,8 @@ package sonia.scm.boot; import com.google.common.annotations.VisibleForTesting; import org.apache.shiro.authc.credential.PasswordService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import sonia.scm.plugin.Extension; import sonia.scm.security.PermissionAssigner; import sonia.scm.security.PermissionDescriptor; @@ -18,6 +20,8 @@ import java.util.Collections; @Extension public class SetupContextListener implements ServletContextListener { + private static final Logger LOG = LoggerFactory.getLogger(SetupContextListener.class); + private final AdministrationContext administrationContext; @Inject @@ -30,6 +34,8 @@ public class SetupContextListener implements ServletContextListener { String skipAdminCreation = System.getProperty("skipAdminCreation"); if (skipAdminCreation == null || "false".equalsIgnoreCase(skipAdminCreation)) { administrationContext.runAsAdmin(SetupAction.class); + } else { + LOG.info("found skipAdminCreation flag; skipping creation of scmadmin"); } } From 6ec49339211b99bfce9903ba6160835c93c996d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Wed, 3 Apr 2019 08:01:15 +0200 Subject: [PATCH 3/4] Use Boolean#getBoolean and prefix parameter --- .../sonia/scm/boot/SetupContextListener.java | 7 +++---- .../scm/boot/SetupContextListenerTest.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java b/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java index 2ed9307516..59002c2d08 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java @@ -31,11 +31,10 @@ public class SetupContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { - String skipAdminCreation = System.getProperty("skipAdminCreation"); - if (skipAdminCreation == null || "false".equalsIgnoreCase(skipAdminCreation)) { - administrationContext.runAsAdmin(SetupAction.class); - } else { + if (Boolean.getBoolean("sonia.scm.skipAdminCreation")) { LOG.info("found skipAdminCreation flag; skipping creation of scmadmin"); + } else { + administrationContext.runAsAdmin(SetupAction.class); } } diff --git a/scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java b/scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java index 421dca5cb7..8912589480 100644 --- a/scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java @@ -9,6 +9,8 @@ import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import sonia.scm.security.PermissionAssigner; import sonia.scm.security.PermissionDescriptor; import sonia.scm.user.User; @@ -62,6 +64,21 @@ class SetupContextListenerTest { verifyAdminPermissionsAssigned(); } + @Test + @MockitoSettings(strictness = Strictness.LENIENT) + void shouldSkipAdminAccountCreationIfPropertyIsSet() { + System.setProperty("sonia.scm.skipAdminCreation", "true"); + + try { + setupContextListener.contextInitialized(null); + + verify(userManager, never()).create(any()); + verify(permissionAssigner, never()).setPermissionsForUser(anyString(), any(Collection.class)); + } finally { + System.setProperty("sonia.scm.skipAdminCreation", ""); + } + } + @Test void shouldDoNothingOnSecondStart() { List users = Lists.newArrayList(UserTestData.createTrillian()); From ada364c4ee164e634ea9388d05f3f47b53f71b2a Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 3 Apr 2019 08:34:57 +0000 Subject: [PATCH 4/4] Close branch bugfix/disable_scmadmin