@Override
 protected void runOnce() throws Exception {
   // disable anonymous access
   GlobalConfigurationResource settings = SettingsMessageUtil.getCurrentSettings();
   settings.setSecurityAnonymousAccessEnabled(false);
   SettingsMessageUtil.save(settings);
 }
  @Test
  public void wrongAnonymousAccount() throws Exception {
    TestContainer.getInstance().getTestContext().useAdminForRequests();

    GlobalConfigurationResource globalConfig = SettingsMessageUtil.getCurrentSettings();
    globalConfig.setSecurityAnonymousUsername("zigfrid");

    Status status = SettingsMessageUtil.save(globalConfig);
    Assert.assertEquals(status.getCode(), 400, "Can't set an invalid user as anonymous");
  }
  @Test
  public void checkNonProxyHostsEmpty() throws Exception {
    GlobalConfigurationResource settings = SettingsMessageUtil.getCurrentSettings();

    settings.setRemoteProxySettings(new RemoteProxySettingsDTO());
    settings.getRemoteProxySettings().setHttpProxySettings(new RemoteHttpProxySettingsDTO());
    settings.getRemoteProxySettings().getHttpProxySettings().setProxyHostname("proxyHost");
    settings.getRemoteProxySettings().getHttpProxySettings().setProxyPort(3211);
    settings.getRemoteProxySettings().getNonProxyHosts().clear();

    Assert.assertEquals(204, SettingsMessageUtil.save(settings).getCode());

    settings = SettingsMessageUtil.getCurrentSettings();
    Assert.assertEquals(0, settings.getRemoteProxySettings().getNonProxyHosts().size());

    CRemoteProxySettings proxySettings =
        getNexusConfigUtil().getNexusConfig().getRemoteProxySettings();
    Assert.assertEquals(0, proxySettings.getNonProxyHosts().size());
  }
  @Test
  public void remoteConnectionSettingsPersistence() throws Exception {
    final GlobalConfigurationResource gcr1 = getCurrentSettings();
    final RemoteConnectionSettings rcs1 = gcr1.getGlobalConnectionSettings();

    rcs1.setConnectionTimeout(100);
    rcs1.setQueryString("foo=bar");
    rcs1.setRetrievalRetryCount(10);
    rcs1.setUserAgentString("foo");

    assertThat(save(gcr1).getCode(), isSuccessfulCode());

    final GlobalConfigurationResource gcr2 = getCurrentSettings();
    final RemoteConnectionSettings rcs2 = gcr2.getGlobalConnectionSettings();

    assertThat(rcs2.getConnectionTimeout(), is(equalTo(rcs1.getConnectionTimeout())));
    assertThat(rcs2.getQueryString(), is(equalTo(rcs1.getQueryString())));
    assertThat(rcs2.getRetrievalRetryCount(), is(equalTo(rcs1.getRetrievalRetryCount())));
    assertThat(rcs2.getUserAgentString(), is(equalTo(rcs1.getUserAgentString())));

    // NEXUS-3427: ensure that query string/user agent can be reset
    rcs2.setQueryString(null);
    rcs2.setUserAgentString(null);

    assertThat(save(gcr2).getCode(), isSuccessfulCode());

    final GlobalConfigurationResource gcr3 = getCurrentSettings();
    final RemoteConnectionSettings rcs3 = gcr3.getGlobalConnectionSettings();

    assertThat(rcs3.getConnectionTimeout(), is(equalTo(rcs2.getConnectionTimeout())));
    assertThat(rcs3.getQueryString(), is(equalTo(rcs2.getQueryString())));
    assertThat(rcs3.getRetrievalRetryCount(), is(equalTo(rcs2.getRetrievalRetryCount())));
    assertThat(rcs3.getUserAgentString(), is(equalTo(rcs2.getUserAgentString())));
  }
 private void setAnonymousAccess(boolean enabled) throws Exception {
   GlobalConfigurationResource settings = SettingsMessageUtil.getCurrentSettings();
   settings.setSecurityAnonymousAccessEnabled(enabled);
   SettingsMessageUtil.save(settings);
 }