@Override public String getServerBaseURL() { return server.getPublicRootUrl(); }
@Override public String getCallbackUrl() { return server.getPublicRootUrl() + CALLBACK_PATH + identityProvider.getKey(); }
private String profileTitleText(String profileName, String languageKey, String languageName, String startDate, String endDate) { return "\"" + profileName + "\" - " + languageName + ": " + server.getPublicRootUrl() + "/profiles/changelog?language=" + languageKey + "&name=" + profileName + "&since=" + startDate + "&to=" + endDate + "\n"; }
private String profileTitleText(String profileName, String languageKey, String languageName) { return "\"" + profileName + "\" - " + languageName + ": " + server.getPublicRootUrl() + "/profiles/changelog?language=" + languageKey + "&name=" + profileName; }
private void writeServer(JsonWriter writer) { writer.prop("serverUrl", server.getPublicRootUrl()); }
private String projectUrlOf(Project project) { return format("%s/dashboard?id=%s", server.getPublicRootUrl(), encode(project.getKey())); }
@Override public void start() { if (providers.length == 0) { return; } String publicRootUrl = server.getPublicRootUrl(); if (StringUtils.startsWithIgnoreCase(publicRootUrl, "http:")) { Loggers.get(getClass()).warn( "For security reasons, OAuth authentication should use HTTPS. You should set the property 'Administration > Configuration > Server base URL' to a HTTPS URL."); } }
@Override public void start() { reportDir = moduleHierarchy.root().getWorkDir().resolve("scanner-report"); writer = new ScannerReportWriter(reportDir.toFile()); contextPublisher.init(writer); if (!analysisMode.isIssues() && !analysisMode.isMediumTest()) { String publicUrl = server.getPublicRootUrl(); if (HttpUrl.parse(publicUrl) == null) { throw MessageException.of("Failed to parse public URL set in SonarQube server: " + publicUrl); } } }
@Before public void setUp() throws Exception { when(server.getPublicRootUrl()).thenReturn(PUBLIC_ROOT_URL); when(identityProvider.getName()).thenReturn("GitHub"); when(identityProvider.getKey()).thenReturn("github"); when(request.getSession()).thenReturn(mock(HttpSession.class)); }
private void assertMessage(EmailMessage emailMessage, String expectedProfileDetails) { assertThat(emailMessage.getMessage()) .containsSubsequence( "The following built-in profiles have been updated:\n\n", expectedProfileDetails, "\nThis is a good time to review your quality profiles and update them to benefit from the latest evolutions: " + server.getPublicRootUrl() + "/profiles"); }
@Before public void setUp() throws Exception { when(server.getPublicRootUrl()).thenReturn("http://" + randomAlphanumeric(10)); }
@Test public void create_context() { when(server.getPublicRootUrl()).thenReturn(SECURED_PUBLIC_ROOT_URL); OAuth2IdentityProvider.InitContext context = newInitContext(); assertThat(context.getRequest()).isEqualTo(request); assertThat(context.getResponse()).isEqualTo(response); assertThat(context.getCallbackUrl()).isEqualTo("https://mydomain.com/oauth2/callback/github"); }
@Test public void create_callback() { when(server.getPublicRootUrl()).thenReturn(SECURED_PUBLIC_ROOT_URL); OAuth2IdentityProvider.CallbackContext callback = newCallbackContext(); assertThat(callback.getRequest()).isEqualTo(request); assertThat(callback.getResponse()).isEqualTo(response); assertThat(callback.getCallbackUrl()).isEqualTo("https://mydomain.com/oauth2/callback/github"); }
@Test public void do_not_log_warning_at_startup_if_secured_base_url_and_oauth_is_installed() { when(server.getPublicRootUrl()).thenReturn("https://mydomain.com"); LogOAuthWarning underTest = new LogOAuthWarning(server, new OAuth2IdentityProvider[1]); underTest.start(); assertThat(logTester.logs(LoggerLevel.WARN)).isEmpty(); underTest.stop(); }
@Test public void fail_if_public_url_malformed() { when(server.getPublicRootUrl()).thenReturn("invalid"); exception.expect(MessageException.class); exception.expectMessage("Failed to parse public URL set in SonarQube server: invalid"); underTest.start(); }
@Test public void log_public_url_if_defined_for_main_branch() throws IOException { when(server.getPublicRootUrl()).thenReturn("https://publicserver/sonarqube"); underTest.logSuccess("TASK-123"); assertThat(logTester.logs(LoggerLevel.INFO)) .contains("ANALYSIS SUCCESSFUL, you can browse https://publicserver/sonarqube/dashboard?id=org.sonarsource.sonarqube%3Asonarqube") .contains("More about the report processing at https://publicserver/sonarqube/api/ce/task?id=TASK-123"); assertThat(readFileToString(properties.metadataFilePath().toFile(), StandardCharsets.UTF_8)).isEqualTo( "projectKey=org.sonarsource.sonarqube:sonarqube\n" + "serverUrl=https://publicserver/sonarqube\n" + "serverVersion=6.4\n" + "dashboardUrl=https://publicserver/sonarqube/dashboard?id=org.sonarsource.sonarqube%3Asonarqube\n" + "ceTaskId=TASK-123\n" + "ceTaskUrl=https://publicserver/sonarqube/api/ce/task?id=TASK-123\n"); }
@Test public void do_not_log_warning_at_startup_if_non_secured_base_url_but_oauth_is_not_installed() { when(server.getPublicRootUrl()).thenReturn("http://mydomain.com"); LogOAuthWarning underTest = new LogOAuthWarning(server); underTest.start(); assertThat(logTester.logs(LoggerLevel.WARN)).isEmpty(); underTest.stop(); } }
@Before public void setUp() throws IOException { root = new DefaultInputModule(ProjectDefinition.create().setKey("org.sonarsource.sonarqube:sonarqube").setBaseDir(temp.newFolder()).setWorkDir(temp.getRoot())); when(moduleHierarchy.root()).thenReturn(root); when(server.getPublicRootUrl()).thenReturn("https://localhost"); when(server.getVersion()).thenReturn("6.4"); when(properties.metadataFilePath()).thenReturn(temp.newFolder().toPath() .resolve("folder") .resolve("report-task.txt")); }
@Test public void log_warning_at_startup_if_non_secured_base_url_and_oauth_is_installed() { when(server.getPublicRootUrl()).thenReturn("http://mydomain.com"); LogOAuthWarning underTest = new LogOAuthWarning(server, new OAuth2IdentityProvider[1]); underTest.start(); assertThat(logTester.logs(LoggerLevel.WARN)).containsOnly("For security reasons, OAuth authentication should use HTTPS. You should set the property 'Administration > Configuration > Server base URL' to a HTTPS URL."); underTest.stop(); }
@Test public void notification_contains_encoded_profile_name() { BuiltInQualityProfilesNotification notification = new BuiltInQualityProfilesNotification() .addProfile(Profile.newBuilder() .setProfileName("Sonar Way") .setLanguageKey("java") .setLanguageName(newLanguageName()) .build()); EmailMessage emailMessage = underTest.format(notification.serialize()); assertThat(emailMessage.getMessage()).contains(server.getPublicRootUrl() + "/profiles/changelog?language=java&name=Sonar+Way"); }