This commit is contained in:
Eduard Heimbuch
2019-10-14 11:34:32 +02:00
parent ce2ea950a8
commit 09409bae33
3 changed files with 2 additions and 17 deletions

View File

@@ -6,7 +6,6 @@ import com.webcohesion.enunciate.metadata.rs.TypeHint;
import sonia.scm.config.ConfigurationPermissions; import sonia.scm.config.ConfigurationPermissions;
import sonia.scm.config.ScmConfiguration; import sonia.scm.config.ScmConfiguration;
import sonia.scm.repository.NamespaceStrategyValidator; import sonia.scm.repository.NamespaceStrategyValidator;
import sonia.scm.user.UserManager;
import sonia.scm.util.ScmConfigurationUtil; import sonia.scm.util.ScmConfigurationUtil;
import sonia.scm.web.VndMediaType; import sonia.scm.web.VndMediaType;
@@ -30,17 +29,15 @@ public class ConfigResource {
private final ScmConfigurationToConfigDtoMapper configToDtoMapper; private final ScmConfigurationToConfigDtoMapper configToDtoMapper;
private final ScmConfiguration configuration; private final ScmConfiguration configuration;
private final NamespaceStrategyValidator namespaceStrategyValidator; private final NamespaceStrategyValidator namespaceStrategyValidator;
private final UserManager userManager;
@Inject @Inject
public ConfigResource(ConfigDtoToScmConfigurationMapper dtoToConfigMapper, public ConfigResource(ConfigDtoToScmConfigurationMapper dtoToConfigMapper,
ScmConfigurationToConfigDtoMapper configToDtoMapper, ScmConfigurationToConfigDtoMapper configToDtoMapper,
ScmConfiguration configuration, NamespaceStrategyValidator namespaceStrategyValidator, UserManager userManager) { ScmConfiguration configuration, NamespaceStrategyValidator namespaceStrategyValidator) {
this.dtoToConfigMapper = dtoToConfigMapper; this.dtoToConfigMapper = dtoToConfigMapper;
this.configToDtoMapper = configToDtoMapper; this.configToDtoMapper = configToDtoMapper;
this.configuration = configuration; this.configuration = configuration;
this.namespaceStrategyValidator = namespaceStrategyValidator; this.namespaceStrategyValidator = namespaceStrategyValidator;
this.userManager = userManager;
} }
/** /**

View File

@@ -14,10 +14,8 @@ import org.junit.Test;
import org.junit.rules.ExpectedException; import org.junit.rules.ExpectedException;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import sonia.scm.SCMContext;
import sonia.scm.config.ScmConfiguration; import sonia.scm.config.ScmConfiguration;
import sonia.scm.repository.NamespaceStrategyValidator; import sonia.scm.repository.NamespaceStrategyValidator;
import sonia.scm.user.UserManager;
import sonia.scm.web.VndMediaType; import sonia.scm.web.VndMediaType;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -31,9 +29,7 @@ import java.nio.charset.StandardCharsets;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks; import static org.mockito.MockitoAnnotations.initMocks;
@SubjectAware( @SubjectAware(
@@ -54,9 +50,6 @@ public class ConfigResourceTest {
@SuppressWarnings("unused") // Is injected @SuppressWarnings("unused") // Is injected
private ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri); private ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri);
@Mock
private UserManager userManager;
@Mock @Mock
private NamespaceStrategyValidator namespaceStrategyValidator; private NamespaceStrategyValidator namespaceStrategyValidator;
@@ -76,7 +69,7 @@ public class ConfigResourceTest {
public void prepareEnvironment() { public void prepareEnvironment() {
initMocks(this); initMocks(this);
ConfigResource configResource = new ConfigResource(dtoToConfigMapper, configToDtoMapper, createConfiguration(), namespaceStrategyValidator, userManager); ConfigResource configResource = new ConfigResource(dtoToConfigMapper, configToDtoMapper, createConfiguration(), namespaceStrategyValidator);
dispatcher.getRegistry().addSingletonResource(configResource); dispatcher.getRegistry().addSingletonResource(configResource);
} }
@@ -142,7 +135,6 @@ public class ConfigResourceTest {
@Test @Test
@SubjectAware(username = "readWrite") @SubjectAware(username = "readWrite")
public void shouldUpdateConfigAndNotCreateAnonymousUserIfAlreadyExists() throws URISyntaxException, IOException { public void shouldUpdateConfigAndNotCreateAnonymousUserIfAlreadyExists() throws URISyntaxException, IOException {
when(userManager.contains(SCMContext.USER_ANONYMOUS)).thenReturn(true);
MockHttpRequest request = post("sonia/scm/api/v2/config-test-update-with-anonymous-access.json"); MockHttpRequest request = post("sonia/scm/api/v2/config-test-update-with-anonymous-access.json");
MockHttpResponse response = new MockHttpResponse(); MockHttpResponse response = new MockHttpResponse();
@@ -156,7 +148,6 @@ public class ConfigResourceTest {
assertTrue(response.getContentAsString().contains("\"proxyPassword\":\"newPassword\"")); assertTrue(response.getContentAsString().contains("\"proxyPassword\":\"newPassword\""));
assertTrue(response.getContentAsString().contains("\"self\":{\"href\":\"/v2/config")); assertTrue(response.getContentAsString().contains("\"self\":{\"href\":\"/v2/config"));
assertTrue("link not found", response.getContentAsString().contains("\"update\":{\"href\":\"/v2/config")); assertTrue("link not found", response.getContentAsString().contains("\"update\":{\"href\":\"/v2/config"));
verify(userManager, never()).create(SCMContext.ANONYMOUS);
} }
@Test @Test

View File

@@ -2,7 +2,6 @@ package sonia.scm.api.v2.resources;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.sdorra.shiro.SubjectAware;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.inject.util.Providers; import com.google.inject.util.Providers;
import de.otto.edison.hal.HalRepresentation; import de.otto.edison.hal.HalRepresentation;
@@ -170,7 +169,6 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
@TestFactory @TestFactory
@DisplayName("test endpoints on missing permissions and user is not Admin") @DisplayName("test endpoints on missing permissions and user is not Admin")
@SubjectAware(username = "trillian")
Stream<DynamicTest> missedPermissionUserForbiddenTestFactory() { Stream<DynamicTest> missedPermissionUserForbiddenTestFactory() {
when(subject.getPrincipal()).thenReturn("user"); when(subject.getPrincipal()).thenReturn("user");
doThrow(AuthorizationException.class).when(repositoryManager).get(any(NamespaceAndName.class)); doThrow(AuthorizationException.class).when(repositoryManager).get(any(NamespaceAndName.class));
@@ -184,7 +182,6 @@ public class RepositoryPermissionRootResourceTest extends RepositoryTestBase {
@TestFactory @TestFactory
@DisplayName("test endpoints on missing permissions and user is not Admin") @DisplayName("test endpoints on missing permissions and user is not Admin")
@SubjectAware(username = "trillian")
Stream<DynamicTest> missedPermissionAnonymousUnauthorizedTestFactory() { Stream<DynamicTest> missedPermissionAnonymousUnauthorizedTestFactory() {
when(subject.getPrincipal()).thenReturn("_anonymous"); when(subject.getPrincipal()).thenReturn("_anonymous");
doThrow(AuthorizationException.class).when(repositoryManager).get(any(NamespaceAndName.class)); doThrow(AuthorizationException.class).when(repositoryManager).get(any(NamespaceAndName.class));