mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 16:35:45 +01:00
use static method to check if subject is anonymous
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
package sonia.scm.security;
|
||||||
|
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import sonia.scm.SCMContext;
|
||||||
|
|
||||||
|
public class Authentications {
|
||||||
|
|
||||||
|
public static boolean isAuthenticatedSubjectAnonymous() {
|
||||||
|
return SecurityUtils.getSubject().getPrincipal().equals(SCMContext.USER_ANONYMOUS);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSubjectAnonymous(String principal) {
|
||||||
|
return principal.equals(SCMContext.USER_ANONYMOUS);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,11 +33,10 @@ package sonia.scm.api.rest;
|
|||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
import org.apache.shiro.SecurityUtils;
|
|
||||||
import org.apache.shiro.authz.AuthorizationException;
|
import org.apache.shiro.authz.AuthorizationException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import sonia.scm.SCMContext;
|
import sonia.scm.security.Authentications;
|
||||||
|
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.Response;
|
import javax.ws.rs.core.Response;
|
||||||
@@ -69,6 +68,6 @@ public class AuthorizationExceptionMapper
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Response.Status getStatus() {
|
private Response.Status getStatus() {
|
||||||
return SecurityUtils.getSubject().getPrincipal().equals(SCMContext.USER_ANONYMOUS) ? Response.Status.UNAUTHORIZED : Response.Status.FORBIDDEN;
|
return Authentications.isAuthenticatedSubjectAnonymous() ? Response.Status.UNAUTHORIZED : Response.Status.FORBIDDEN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ import de.otto.edison.hal.Embedded;
|
|||||||
import de.otto.edison.hal.Link;
|
import de.otto.edison.hal.Link;
|
||||||
import de.otto.edison.hal.Links;
|
import de.otto.edison.hal.Links;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import sonia.scm.SCMContext;
|
|
||||||
import sonia.scm.SCMContextProvider;
|
import sonia.scm.SCMContextProvider;
|
||||||
import sonia.scm.config.ConfigurationPermissions;
|
import sonia.scm.config.ConfigurationPermissions;
|
||||||
import sonia.scm.config.ScmConfiguration;
|
import sonia.scm.config.ScmConfiguration;
|
||||||
import sonia.scm.group.GroupPermissions;
|
import sonia.scm.group.GroupPermissions;
|
||||||
import sonia.scm.plugin.PluginPermissions;
|
import sonia.scm.plugin.PluginPermissions;
|
||||||
|
import sonia.scm.security.Authentications;
|
||||||
import sonia.scm.security.PermissionPermissions;
|
import sonia.scm.security.PermissionPermissions;
|
||||||
import sonia.scm.user.UserPermissions;
|
import sonia.scm.user.UserPermissions;
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ public class IndexDtoGenerator extends HalAppenderMapper {
|
|||||||
if (SecurityUtils.getSubject().isAuthenticated()) {
|
if (SecurityUtils.getSubject().isAuthenticated()) {
|
||||||
builder.single(link("me", resourceLinks.me().self()));
|
builder.single(link("me", resourceLinks.me().self()));
|
||||||
|
|
||||||
if (SecurityUtils.getSubject().getPrincipal().equals(SCMContext.USER_ANONYMOUS)) {
|
if (Authentications.isAuthenticatedSubjectAnonymous()) {
|
||||||
builder.single(link("login", resourceLinks.authentication().jsonLogin()));
|
builder.single(link("login", resourceLinks.authentication().jsonLogin()));
|
||||||
} else {
|
} else {
|
||||||
builder.single(link("logout", resourceLinks.authentication().logout()));
|
builder.single(link("logout", resourceLinks.authentication().logout()));
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import com.cronutils.utils.VisibleForTesting;
|
|||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import sonia.scm.SCMContext;
|
|
||||||
import sonia.scm.cache.Cache;
|
import sonia.scm.cache.Cache;
|
||||||
import sonia.scm.cache.CacheManager;
|
import sonia.scm.cache.CacheManager;
|
||||||
|
import sonia.scm.security.Authentications;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -39,7 +39,7 @@ public class DefaultGroupCollector implements GroupCollector {
|
|||||||
public Set<String> collect(String principal) {
|
public Set<String> collect(String principal) {
|
||||||
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
|
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
|
||||||
|
|
||||||
if (!principal.equals(SCMContext.USER_ANONYMOUS)) {
|
if (!Authentications.isSubjectAnonymous(principal)) {
|
||||||
builder.add(AUTHENTICATED);
|
builder.add(AUTHENTICATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user