Browse Source

SONAR-21882 Fix SSF-570

tags/10.5.0.89998
Antoine Vigneau 1 month ago
parent
commit
417e619701

+ 3
- 0
server/sonar-web/src/main/js/apps/settings/components/almIntegration/AzureForm.tsx View File

{translate('settings.almintegration.form.url.azure.help2')} {translate('settings.almintegration.form.url.azure.help2')}
<br /> <br />
<em>https://dev.azure.com/your_organization</em> <em>https://dev.azure.com/your_organization</em>
<br />
<br />
{translate('settings.almintegration.form.url.pat_warning')}
</> </>
} }
id="url.azure" id="url.azure"

+ 21
- 2
server/sonar-webserver-webapi/src/it/java/org/sonar/server/almsettings/ws/UpdateAzureActionIT.java View File

import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule; import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester; import org.sonar.server.ws.WsActionTester;


import static java.lang.String.format; import static java.lang.String.format;
} }


@Test @Test
public void update_without_pat() {
public void update_with_url_change_needs_pat() {
UserDto user = db.users().insertUser(); UserDto user = db.users().insertUser();
userSession.logIn(user).setSystemAdministrator(); userSession.logIn(user).setSystemAdministrator();


ws.newRequest() ws.newRequest()
.setParam("key", almSettingDto.getKey()) .setParam("key", almSettingDto.getKey())
.setParam("url", AZURE_URL) .setParam("url", AZURE_URL)
.setParam("personalAccessToken", "0123456789")
.execute(); .execute();

assertThat(db.getDbClient().almSettingDao().selectAll(db.getSession())) assertThat(db.getDbClient().almSettingDao().selectAll(db.getSession()))
.extracting(AlmSettingDto::getKey, AlmSettingDto::getUrl, s -> s.getDecryptedPersonalAccessToken(encryption)) .extracting(AlmSettingDto::getKey, AlmSettingDto::getUrl, s -> s.getDecryptedPersonalAccessToken(encryption))
.containsOnly(tuple(almSettingDto.getKey(), AZURE_URL, almSettingDto.getDecryptedPersonalAccessToken(encryption)));
.containsOnly(tuple(almSettingDto.getKey(), AZURE_URL, "0123456789"));
}

@Test
public void fail_when_update_url_without_pat() {
UserDto user = db.users().insertUser();
userSession.logIn(user).setSystemAdministrator();

AlmSettingDto almSettingDto = db.almSettings().insertAzureAlmSetting();

TestRequest request = ws.newRequest()
.setParam("key", almSettingDto.getKey())
.setParam("url", AZURE_URL);

assertThatThrownBy(() -> request.execute())
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("Please provide the Personal Access Token to update the URL.");
} }


@Test @Test

+ 1
- 1
server/sonar-webserver-webapi/src/it/java/org/sonar/server/almsettings/ws/UpdateBitbucketActionIT.java View File

} }


@Test @Test
public void update_with_url_change_needs_path() {
public void update_with_url_change_needs_pat() {
UserDto user = db.users().insertUser(); UserDto user = db.users().insertUser();
userSession.logIn(user).setSystemAdministrator(); userSession.logIn(user).setSystemAdministrator();



+ 2
- 0
server/sonar-webserver-webapi/src/main/java/org/sonar/server/almsettings/ws/UpdateAzureAction.java View File

almSettingsSupport.checkAlmSettingDoesNotAlreadyExist(dbSession, newKey); almSettingsSupport.checkAlmSettingDoesNotAlreadyExist(dbSession, newKey);
} }


almSettingsSupport.checkPatOnUrlUpdate(almSettingDto, url, pat);

if (isNotBlank(pat)) { if (isNotBlank(pat)) {
almSettingDto.setPersonalAccessToken(pat); almSettingDto.setPersonalAccessToken(pat);
} }

+ 1
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/almsettings/ws/UpdateBitbucketAction.java View File

private void doHandle(Request request) { private void doHandle(Request request) {
String key = request.mandatoryParam(PARAM_KEY); String key = request.mandatoryParam(PARAM_KEY);
String newKey = request.param(PARAM_NEW_KEY); String newKey = request.param(PARAM_NEW_KEY);
String url = request.mandatoryParam(PARAM_URL);
String pat = request.param(PARAM_PERSONAL_ACCESS_TOKEN); String pat = request.param(PARAM_PERSONAL_ACCESS_TOKEN);


try (DbSession dbSession = dbClient.openSession(false)) { try (DbSession dbSession = dbClient.openSession(false)) {
almSettingsSupport.checkAlmSettingDoesNotAlreadyExist(dbSession, newKey); almSettingsSupport.checkAlmSettingDoesNotAlreadyExist(dbSession, newKey);
} }


String url = request.mandatoryParam(PARAM_URL);
almSettingsSupport.checkPatOnUrlUpdate(almSettingDto, url, pat); almSettingsSupport.checkPatOnUrlUpdate(almSettingDto, url, pat);


if (isNotBlank(pat)) { if (isNotBlank(pat)) {

Loading…
Cancel
Save