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

@@ -3,10 +3,10 @@ package sonia.scm.api.v2.resources;
import com.webcohesion.enunciate.metadata.rs.ResponseCode;
import com.webcohesion.enunciate.metadata.rs.StatusCodes;
import com.webcohesion.enunciate.metadata.rs.TypeHint;
import sonia.scm.SCMContext;
import sonia.scm.config.ConfigurationPermissions;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.repository.NamespaceStrategyValidator;
import sonia.scm.user.User;
import sonia.scm.user.UserManager;
import sonia.scm.util.ScmConfigurationUtil;
import sonia.scm.web.VndMediaType;
@@ -96,8 +96,8 @@ public class ConfigResource {
ScmConfigurationUtil.getInstance().store(configuration);
}
if (config.isAnonymousAccessEnabled() && !userManager.contains("_anonymous")) {
userManager.create(new User("_anonymous"));
if (config.isAnonymousAccessEnabled() && !userManager.contains(SCMContext.USER_ANONYMOUS)) {
userManager.create(SCMContext.ANONYMOUS);
}
return Response.noContent().build();

View File

@@ -4,6 +4,7 @@ import com.cronutils.utils.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.SCMContext;
import sonia.scm.cache.Cache;
import sonia.scm.cache.CacheManager;
@@ -38,7 +39,7 @@ public class DefaultGroupCollector implements GroupCollector {
public Set<String> collect(String principal) {
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
if (principal != "_anonymous") {
if (!principal.equals(SCMContext.USER_ANONYMOUS)) {
builder.add(AUTHENTICATED);
}

View File

@@ -4,6 +4,7 @@ import com.google.common.annotations.VisibleForTesting;
import org.apache.shiro.authc.credential.PasswordService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.SCMContext;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.plugin.Extension;
import sonia.scm.security.PermissionAssigner;
@@ -64,12 +65,12 @@ public class SetupContextListener implements ServletContextListener {
createAdminAccount();
}
if (anonymousUserRequiredButNotExists()) {
userManager.create(new User("_anonymous"));
userManager.create(SCMContext.ANONYMOUS);
}
}
private boolean anonymousUserRequiredButNotExists() {
return scmConfiguration.isAnonymousAccessEnabled() && !userManager.contains("_anonymous");
return scmConfiguration.isAnonymousAccessEnabled() && !userManager.contains(SCMContext.USER_ANONYMOUS);
}
private boolean isFirstStart() {