implement anonymous realm // use constant for _anonymous user

This commit is contained in:
Eduard Heimbuch
2019-10-10 13:40:40 +02:00
parent 344ad696b2
commit 18cb7020d0
7 changed files with 27 additions and 16 deletions

View File

@@ -14,9 +14,9 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import sonia.scm.SCMContext;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.repository.NamespaceStrategyValidator;
import sonia.scm.user.User;
import sonia.scm.user.UserManager;
import sonia.scm.web.VndMediaType;
@@ -137,13 +137,13 @@ public class ConfigResourceTest {
assertTrue(response.getContentAsString().contains("\"proxyPassword\":\"newPassword\""));
assertTrue(response.getContentAsString().contains("\"self\":{\"href\":\"/v2/config"));
assertTrue("link not found", response.getContentAsString().contains("\"update\":{\"href\":\"/v2/config"));
verify(userManager).create(new User("_anonymous"));
verify(userManager).create(SCMContext.ANONYMOUS);
}
@Test
@SubjectAware(username = "readWrite")
public void shouldUpdateConfigAndNotCreateAnonymousUserIfAlreadyExists() throws URISyntaxException, IOException {
when(userManager.contains("_anonymous")).thenReturn(true);
when(userManager.contains(SCMContext.USER_ANONYMOUS)).thenReturn(true);
MockHttpRequest request = post("sonia/scm/api/v2/config-test-update-with-anonymous-access.json");
MockHttpResponse response = new MockHttpResponse();
@@ -157,7 +157,7 @@ public class ConfigResourceTest {
assertTrue(response.getContentAsString().contains("\"proxyPassword\":\"newPassword\""));
assertTrue(response.getContentAsString().contains("\"self\":{\"href\":\"/v2/config"));
assertTrue("link not found", response.getContentAsString().contains("\"update\":{\"href\":\"/v2/config"));
verify(userManager, never()).create(new User("_anonymous"));
verify(userManager, never()).create(SCMContext.ANONYMOUS);
}
@Test

View File

@@ -11,6 +11,7 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
import sonia.scm.SCMContext;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.security.PermissionAssigner;
import sonia.scm.security.PermissionDescriptor;
@@ -112,7 +113,7 @@ class SetupContextListenerTest {
setupContextListener.contextInitialized(null);
verify(userManager).create(new User("_anonymous"));
verify(userManager).create(SCMContext.ANONYMOUS);
}
@Test
@@ -122,18 +123,18 @@ class SetupContextListenerTest {
setupContextListener.contextInitialized(null);
verify(userManager, never()).create(new User("_anonymous"));
verify(userManager, never()).create(SCMContext.ANONYMOUS);
}
@Test
void shouldNotCreateAnonymousUserIfAlreadyExists() {
List<User> users = Lists.newArrayList(new User("_anonymous"));
List<User> users = Lists.newArrayList(SCMContext.ANONYMOUS);
when(userManager.getAll()).thenReturn(users);
when(scmConfiguration.isAnonymousAccessEnabled()).thenReturn(true);
setupContextListener.contextInitialized(null);
verify(userManager, times(1)).create(new User("_anonymous"));
verify(userManager, times(1)).create(SCMContext.ANONYMOUS);
}
private void verifyAdminPermissionsAssigned() {