diff --git a/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java b/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java index 7460c29297..5cbda6d1e1 100644 --- a/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java +++ b/scm-core/src/main/java/sonia/scm/config/ScmConfigurationChangedListener.java @@ -20,6 +20,10 @@ public class ScmConfigurationChangedListener { @Subscribe public void handleEvent(ScmConfigurationChangedEvent event) { + createAnonymousUserIfRequired(event); + } + + private void createAnonymousUserIfRequired(ScmConfigurationChangedEvent event) { if (event.getConfiguration().isAnonymousAccessEnabled() && !userManager.contains(SCMContext.USER_ANONYMOUS)) { userManager.create(SCMContext.ANONYMOUS); } diff --git a/scm-core/src/main/java/sonia/scm/security/Authentications.java b/scm-core/src/main/java/sonia/scm/security/Authentications.java index dbd5fe6167..65332e20f4 100644 --- a/scm-core/src/main/java/sonia/scm/security/Authentications.java +++ b/scm-core/src/main/java/sonia/scm/security/Authentications.java @@ -6,10 +6,10 @@ import sonia.scm.SCMContext; public class Authentications { public static boolean isAuthenticatedSubjectAnonymous() { - return SecurityUtils.getSubject().getPrincipal().equals(SCMContext.USER_ANONYMOUS); + return isSubjectAnonymous((String) SecurityUtils.getSubject().getPrincipal()); } public static boolean isSubjectAnonymous(String principal) { - return principal.equals(SCMContext.USER_ANONYMOUS); + return SCMContext.USER_ANONYMOUS.equals(principal); } } diff --git a/scm-ui/ui-webapp/src/containers/App.js b/scm-ui/ui-webapp/src/containers/App.js index e788fc84d8..d227f83187 100644 --- a/scm-ui/ui-webapp/src/containers/App.js +++ b/scm-ui/ui-webapp/src/containers/App.js @@ -38,10 +38,10 @@ class App extends Component { } render() { - const {me, loading, error, authenticated, links, t} = this.props; + const { me, loading, error, authenticated, links, t } = this.props; let content; - const navigation = authenticated ? : ""; + const navigation = authenticated ? : ""; if (loading) { content = ; @@ -60,7 +60,7 @@ class App extends Component {
{navigation}
{content} - {authenticated &&
); } diff --git a/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java b/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java index b44db8d62a..212b067dbc 100644 --- a/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java +++ b/scm-webapp/src/main/java/sonia/scm/user/DefaultUserManager.java @@ -49,14 +49,9 @@ import sonia.scm.TransformFilter; import sonia.scm.search.SearchRequest; import sonia.scm.search.SearchUtil; import sonia.scm.util.CollectionAppender; -import sonia.scm.util.IOUtil; import sonia.scm.util.Util; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; import java.io.IOException; -import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigResourceTest.java index d274d7b6d7..15c23dbd3c 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/ConfigResourceTest.java @@ -114,42 +114,6 @@ public class ConfigResourceTest { assertTrue("link not found", response.getContentAsString().contains("\"update\":{\"href\":\"/v2/config")); } - @Test - @SubjectAware(username = "readWrite") - public void shouldUpdateConfigAndCreateAnonymousUser() throws URISyntaxException, IOException { - MockHttpRequest request = post("sonia/scm/api/v2/config-test-update-with-anonymous-access.json"); - - MockHttpResponse response = new MockHttpResponse(); - dispatcher.invoke(request, response); - assertEquals(HttpServletResponse.SC_NO_CONTENT, response.getStatus()); - - request = MockHttpRequest.get("/" + ConfigResource.CONFIG_PATH_V2); - response = new MockHttpResponse(); - dispatcher.invoke(request, response); - assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - 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")); - } - - @Test - @SubjectAware(username = "readWrite") - public void shouldUpdateConfigAndNotCreateAnonymousUserIfAlreadyExists() throws URISyntaxException, IOException { - MockHttpRequest request = post("sonia/scm/api/v2/config-test-update-with-anonymous-access.json"); - - MockHttpResponse response = new MockHttpResponse(); - dispatcher.invoke(request, response); - assertEquals(HttpServletResponse.SC_NO_CONTENT, response.getStatus()); - - request = MockHttpRequest.get("/" + ConfigResource.CONFIG_PATH_V2); - response = new MockHttpResponse(); - dispatcher.invoke(request, response); - assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - 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")); - } - @Test @SubjectAware(username = "readOnly") public void shouldNotUpdateConfigWhenNotAuthorized() throws URISyntaxException, IOException { @@ -188,7 +152,6 @@ public class ConfigResourceTest { private static ScmConfiguration createConfiguration() { ScmConfiguration scmConfiguration = new ScmConfiguration(); scmConfiguration.setProxyPassword("heartOfGold"); - scmConfiguration.setAnonymousAccessEnabled(true); return scmConfiguration; } diff --git a/scm-webapp/src/test/resources/sonia/scm/api/v2/config-test-update-with-anonymous-access.json b/scm-webapp/src/test/resources/sonia/scm/api/v2/config-test-update-with-anonymous-access.json deleted file mode 100644 index 7be259d272..0000000000 --- a/scm-webapp/src/test/resources/sonia/scm/api/v2/config-test-update-with-anonymous-access.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "proxyPassword": "newPassword", - "anonymousAccessEnabled": "true" -}