aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2017-10-04 16:35:14 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2017-10-04 17:27:38 +0200
commit1987c0b34447aaf12b7f248516f3be77024fbfaa (patch)
tree4a8c335b79727a59b7d855883b37b1c8957abac5 /server
parent4939863d74224188de391caf19a955322dc3f0b9 (diff)
downloadsonarqube-1987c0b34447aaf12b7f248516f3be77024fbfaa.tar.gz
sonarqube-1987c0b34447aaf12b7f248516f3be77024fbfaa.zip
SONAR-9263 Drop unused property sonar.web.dev
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/authentication/OAuth2ContextFactory.java7
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java20
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java2
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/platform/UrlSettings.java4
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartAction.java31
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/authentication/OAuth2ContextFactoryTest.java18
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/platform/ServerTesterPlatform.java44
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/platform/UrlSettingsTest.java12
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/platform/ws/RestartActionTest.java46
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/platform/ws/SystemWsTest.java4
11 files changed, 30 insertions, 166 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/authentication/OAuth2ContextFactory.java b/server/sonar-server/src/main/java/org/sonar/server/authentication/OAuth2ContextFactory.java
index c48cbfe9634..368c3add037 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/authentication/OAuth2ContextFactory.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/authentication/OAuth2ContextFactory.java
@@ -25,7 +25,7 @@ import javax.servlet.http.HttpServletResponse;
import org.sonar.api.platform.Server;
import org.sonar.api.server.authentication.OAuth2IdentityProvider;
import org.sonar.api.server.authentication.UserIdentity;
-import org.sonar.api.utils.MessageException;
+import org.sonar.api.utils.log.Loggers;
import org.sonar.db.user.UserDto;
import org.sonar.server.authentication.event.AuthenticationEvent;
import org.sonar.server.user.ThreadLocalUserSession;
@@ -77,8 +77,9 @@ public class OAuth2ContextFactory {
@Override
public String getCallbackUrl() {
String publicRootUrl = server.getPublicRootUrl();
- if (publicRootUrl.startsWith("http:") && !server.isDev()) {
- throw MessageException.of(format("The server url should be configured in https, please update the property '%s'", SERVER_BASE_URL));
+ if (publicRootUrl.startsWith("http:")) {
+ Loggers.get(getClass()).warn(
+ "For security reasons, the server URL used for OAuth authentications should be https. Please update the property '{}'.", SERVER_BASE_URL);
}
return publicRootUrl + CALLBACK_PATH + identityProvider.getKey();
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
index 4596c883b81..3789ddb8b29 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/platform/Platform.java
@@ -136,26 +136,6 @@ public class Platform {
return getDatabaseStatus() != DatabaseVersion.Status.UP_TO_DATE;
}
- public void restart() {
- restart(Startup.ALL);
- }
-
- protected void restart(Startup startup) {
- // switch currentLevel on level1 now to avoid exposing a container in the process of stopping
- currentLevel = level1;
- autoStarter = null;
-
- // stop containers
- stopSafeModeContainer();
- stopLevel234Containers();
-
- // no need to initialize database connection, so level 1 is skipped
- startLevel2Container();
- startLevel34Containers();
- currentLevel = level4;
- executeStartupTasks(startup);
- }
-
public boolean isStarted() {
return status() == Status.UP;
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java b/server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java
index 03e55161cd6..7a5c1217d55 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/platform/ServerImpl.java
@@ -93,7 +93,7 @@ public class ServerImpl extends Server {
@Override
public boolean isDev() {
- return urlSettings.isDev();
+ return false;
}
@Override
diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/UrlSettings.java b/server/sonar-server/src/main/java/org/sonar/server/platform/UrlSettings.java
index c56693c5921..bb90127c376 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/platform/UrlSettings.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/platform/UrlSettings.java
@@ -59,10 +59,6 @@ public class UrlSettings {
return contextPath;
}
- public boolean isDev() {
- return config.getBoolean("sonar.web.dev").orElse(false);
- }
-
public boolean isSecured() {
return getBaseUrl().startsWith("https://");
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartAction.java b/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartAction.java
index 00d5aaebdc0..6660142854c 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/platform/ws/RestartAction.java
@@ -19,7 +19,6 @@
*/
package org.sonar.server.platform.ws;
-import org.sonar.api.config.Configuration;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
@@ -27,7 +26,6 @@ import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.server.app.ProcessCommandWrapper;
import org.sonar.server.app.RestartFlagHolder;
-import org.sonar.server.platform.Platform;
import org.sonar.server.platform.WebServer;
import org.sonar.server.user.UserSession;
@@ -39,17 +37,13 @@ public class RestartAction implements SystemWsAction {
private static final Logger LOGGER = Loggers.get(RestartAction.class);
private final UserSession userSession;
- private final Configuration config;
- private final Platform platform;
private final ProcessCommandWrapper processCommandWrapper;
private final RestartFlagHolder restartFlagHolder;
private final WebServer webServer;
- public RestartAction(UserSession userSession, Configuration config, Platform platform, ProcessCommandWrapper processCommandWrapper, RestartFlagHolder restartFlagHolder,
- WebServer webServer) {
+ public RestartAction(UserSession userSession, ProcessCommandWrapper processCommandWrapper, RestartFlagHolder restartFlagHolder,
+ WebServer webServer) {
this.userSession = userSession;
- this.config = config;
- this.platform = platform;
this.processCommandWrapper = processCommandWrapper;
this.restartFlagHolder = restartFlagHolder;
this.webServer = webServer;
@@ -69,23 +63,12 @@ public class RestartAction implements SystemWsAction {
if (!webServer.isStandalone()) {
throw new IllegalArgumentException("Restart not allowed for cluster nodes");
}
- if (config.getBoolean("sonar.web.dev").orElse(false)) {
- LOGGER.info("Fast restarting WebServer...");
- restartFlagHolder.set();
- try {
- platform.restart();
- LOGGER.info("WebServer restarted");
- } finally {
- restartFlagHolder.unset();
- }
- } else {
- userSession.checkIsSystemAdministrator();
- LOGGER.info("SonarQube restart requested by {}", userSession.getLogin());
- restartFlagHolder.set();
- processCommandWrapper.requestSQRestart();
- }
- response.noContent();
+ userSession.checkIsSystemAdministrator();
+
+ LOGGER.info("SonarQube restart requested by {}", userSession.getLogin());
+ restartFlagHolder.set();
+ processCommandWrapper.requestSQRestart();
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/authentication/OAuth2ContextFactoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/authentication/OAuth2ContextFactoryTest.java
index 161d52bd9ea..d3961427255 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/authentication/OAuth2ContextFactoryTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/authentication/OAuth2ContextFactoryTest.java
@@ -29,8 +29,9 @@ import org.junit.rules.ExpectedException;
import org.sonar.api.platform.Server;
import org.sonar.api.server.authentication.OAuth2IdentityProvider;
import org.sonar.api.server.authentication.UserIdentity;
-import org.sonar.api.utils.MessageException;
import org.sonar.api.utils.System2;
+import org.sonar.api.utils.log.LogTester;
+import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@@ -52,7 +53,6 @@ public class OAuth2ContextFactoryTest {
private static final String PROVIDER_KEY = "github";
private static final String SECURED_PUBLIC_ROOT_URL = "https://mydomain.com";
- private static final String NOT_SECURED_PUBLIC_URL = "http://mydomain.com";
private static final String PROVIDER_NAME = "provider name";
private static final UserIdentity USER_IDENTITY = UserIdentity.builder()
.setProviderLogin("johndoo")
@@ -67,16 +67,17 @@ public class OAuth2ContextFactoryTest {
@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);
+ @Rule
+ public LogTester logTester = new LogTester();
+
private DbClient dbClient = dbTester.getDbClient();
private DbSession dbSession = dbTester.getSession();
-
private ThreadLocalUserSession threadLocalUserSession = mock(ThreadLocalUserSession.class);
private UserIdentityAuthenticator userIdentityAuthenticator = mock(UserIdentityAuthenticator.class);
private Server server = mock(Server.class);
private OAuthCsrfVerifier csrfVerifier = mock(OAuthCsrfVerifier.class);
private JwtHttpHandler jwtHttpHandler = mock(JwtHttpHandler.class);
private TestUserSessionFactory userSessionFactory = TestUserSessionFactory.standalone();
-
private HttpServletRequest request = mock(HttpServletRequest.class);
private HttpServletResponse response = mock(HttpServletResponse.class);
private HttpSession session = mock(HttpSession.class);
@@ -125,14 +126,13 @@ public class OAuth2ContextFactoryTest {
}
@Test
- public void fail_to_get_callback_url_on_not_secured_server() throws Exception {
- when(server.getPublicRootUrl()).thenReturn(NOT_SECURED_PUBLIC_URL);
+ public void display_a_warning_if_not_https() throws Exception {
+ when(server.getPublicRootUrl()).thenReturn("http://mydomain.com");
OAuth2IdentityProvider.InitContext context = newInitContext();
- thrown.expect(MessageException.class);
- thrown.expectMessage("The server url should be configured in https, please update the property 'sonar.core.serverBaseURL'");
- context.getCallbackUrl();
+ assertThat(context.getCallbackUrl()).isEqualTo("http://mydomain.com/oauth2/callback/github");
+ assertThat(logTester.logs(LoggerLevel.WARN)).containsOnly("For security reasons, the server URL used for OAuth authentications should be https. Please update the property 'sonar.core.serverBaseURL'.");
}
@Test
diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java
index 55c66fd3a53..ae164982d5b 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/platform/ServerImplTest.java
@@ -46,16 +46,20 @@ public class ServerImplTest {
public TemporaryFolder temp = new TemporaryFolder();
@Test
+ public void isDev_always_returns_false() {
+ assertThat(underTest.isDev()).isFalse();
+ }
+
+ @Test
public void test_url_information() {
when(urlSettings.getContextPath()).thenReturn("/foo");
when(urlSettings.getBaseUrl()).thenReturn("http://localhost:9000/foo");
- when(urlSettings.isDev()).thenReturn(true);
when(urlSettings.isSecured()).thenReturn(false);
assertThat(underTest.getContextPath()).isEqualTo("/foo");
assertThat(underTest.getURL()).isEqualTo("http://localhost:9000/foo");
assertThat(underTest.getPublicRootUrl()).isEqualTo("http://localhost:9000/foo");
- assertThat(underTest.isDev()).isTrue();
+ assertThat(underTest.isDev()).isFalse();
assertThat(underTest.isSecured()).isFalse();
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/ServerTesterPlatform.java b/server/sonar-server/src/test/java/org/sonar/server/platform/ServerTesterPlatform.java
deleted file mode 100644
index ca2a3f4324e..00000000000
--- a/server/sonar-server/src/test/java/org/sonar/server/platform/ServerTesterPlatform.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2017 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.server.platform;
-
-import java.util.function.Supplier;
-
-public class ServerTesterPlatform extends Platform {
- public ServerTesterPlatform(Supplier<AutoStarter> autoStarterFactory) {
- super(autoStarterFactory);
- }
-
- /**
- * Override to make public
- */
- @Override
- public void doStart(Startup startup) {
- super.doStart(startup);
- }
-
- /**
- * Override to make public
- */
- @Override
- public void restart(Startup startup) {
- super.restart(startup);
- }
-}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/UrlSettingsTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/UrlSettingsTest.java
index 4e76ae97040..8e3126e1c9b 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/platform/UrlSettingsTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/platform/UrlSettingsTest.java
@@ -46,18 +46,6 @@ public class UrlSettingsTest {
}
@Test
- public void dev_mode_is_disabled_by_default() {
- assertThat(underTest().isDev()).isFalse();
- }
-
- @Test
- public void dev_mode_is_enabled() {
- settings.setProperty("sonar.web.dev", true);
-
- assertThat(underTest().isDev()).isTrue();
- }
-
- @Test
public void default_url() throws Exception {
assertThat(underTest().getBaseUrl()).isEqualTo("http://localhost:9000");
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/ws/RestartActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/ws/RestartActionTest.java
index 059e2e0e064..4403c0ad593 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/platform/ws/RestartActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/platform/ws/RestartActionTest.java
@@ -24,20 +24,16 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.InOrder;
import org.mockito.Mockito;
-import org.sonar.api.config.internal.MapSettings;
import org.sonar.api.utils.log.LogTester;
import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.server.app.ProcessCommandWrapper;
import org.sonar.server.app.RestartFlagHolder;
import org.sonar.server.exceptions.ForbiddenException;
-import org.sonar.server.platform.Platform;
import org.sonar.server.platform.WebServer;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
-import org.sonar.server.ws.WsTester;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -49,53 +45,15 @@ public class RestartActionTest {
@Rule
public LogTester logTester = new LogTester();
- private MapSettings settings = new MapSettings();
- private Platform platform = mock(Platform.class);
private ProcessCommandWrapper processCommandWrapper = mock(ProcessCommandWrapper.class);
private RestartFlagHolder restartFlagHolder = mock(RestartFlagHolder.class);
private WebServer webServer = mock(WebServer.class);
- private RestartAction sut = new RestartAction(userSessionRule, settings.asConfig(), platform, processCommandWrapper, restartFlagHolder, webServer);
- private InOrder inOrder = Mockito.inOrder(platform, restartFlagHolder, processCommandWrapper);
+ private RestartAction sut = new RestartAction(userSessionRule, processCommandWrapper, restartFlagHolder, webServer);
+ private InOrder inOrder = Mockito.inOrder(restartFlagHolder, processCommandWrapper);
private WsActionTester actionTester = new WsActionTester(sut);
@Test
- public void restart_if_dev_mode() throws Exception {
- when(webServer.isStandalone()).thenReturn(true);
- settings.setProperty("sonar.web.dev", true);
-
- SystemWs ws = new SystemWs(sut);
-
- WsTester tester = new WsTester(ws);
- tester.newPostRequest("api/system", "restart").execute();
- InOrder inOrder = Mockito.inOrder(platform, restartFlagHolder);
- inOrder.verify(restartFlagHolder).set();
- inOrder.verify(platform).restart();
- inOrder.verify(restartFlagHolder).unset();
- }
-
- @Test
- public void restart_flag_is_unset_in_dev_mode_even_if_restart_fails() throws Exception {
- when(webServer.isStandalone()).thenReturn(true);
- settings.setProperty("sonar.web.dev", true);
- RuntimeException toBeThrown = new RuntimeException("simulating platform.restart() failed");
- doThrow(toBeThrown).when(platform).restart();
-
- SystemWs ws = new SystemWs(sut);
-
- WsTester tester = new WsTester(ws);
- try {
- tester.newPostRequest("api/system", "restart").execute();
- } catch (RuntimeException e) {
- assertThat(e).isSameAs(toBeThrown);
- } finally {
- inOrder.verify(restartFlagHolder).set();
- inOrder.verify(platform).restart();
- inOrder.verify(restartFlagHolder).unset();
- }
- }
-
- @Test
public void request_fails_in_production_mode_with_ForbiddenException_when_user_is_not_logged_in() {
when(webServer.isStandalone()).thenReturn(true);
expectedException.expect(ForbiddenException.class);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/ws/SystemWsTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/ws/SystemWsTest.java
index 22e6ad20114..441c239822f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/platform/ws/SystemWsTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/platform/ws/SystemWsTest.java
@@ -20,7 +20,6 @@
package org.sonar.server.platform.ws;
import org.junit.Test;
-import org.sonar.api.config.Configuration;
import org.sonar.api.server.ws.WebService;
import org.sonar.ce.http.CeHttpClient;
import org.sonar.ce.http.CeHttpClientImpl;
@@ -28,7 +27,6 @@ import org.sonar.server.app.ProcessCommandWrapper;
import org.sonar.server.app.RestartFlagHolder;
import org.sonar.server.health.HealthChecker;
import org.sonar.server.health.TestStandaloneHealthChecker;
-import org.sonar.server.platform.Platform;
import org.sonar.server.platform.WebServer;
import org.sonar.server.telemetry.TelemetryDataLoader;
import org.sonar.server.tester.AnonymousMockUserSession;
@@ -44,7 +42,7 @@ public class SystemWsTest {
@Test
public void define() {
- RestartAction action1 = new RestartAction(mock(UserSession.class), mock(Configuration.class), mock(Platform.class), mock(ProcessCommandWrapper.class),
+ RestartAction action1 = new RestartAction(mock(UserSession.class), mock(ProcessCommandWrapper.class),
mock(RestartFlagHolder.class), mock(WebServer.class));
InfoAction action2 = new InfoAction(new AnonymousMockUserSession(), mock(TelemetryDataLoader.class), ceHttpClient, healthChecker);
SystemWs ws = new SystemWs(action1, action2);