fix missing anon exception

This commit is contained in:
Eduard Heimbuch
2019-10-18 11:31:15 +02:00
parent bcef594301
commit 74a89a7130
2 changed files with 5 additions and 4 deletions

View File

@@ -6,12 +6,12 @@ import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.credential.AllowAllCredentialsMatcher; import org.apache.shiro.authc.credential.AllowAllCredentialsMatcher;
import org.apache.shiro.realm.AuthenticatingRealm; import org.apache.shiro.realm.AuthenticatingRealm;
import sonia.scm.ConfigurationException;
import sonia.scm.SCMContext; import sonia.scm.SCMContext;
import sonia.scm.plugin.Extension; import sonia.scm.plugin.Extension;
import sonia.scm.user.UserDAO; import sonia.scm.user.UserDAO;
import javax.inject.Singleton; import javax.inject.Singleton;
import javax.ws.rs.NotAuthorizedException;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
@@ -43,7 +43,7 @@ public class AnonymousRealm extends AuthenticatingRealm {
@Override @Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) { protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) {
if (!userDAO.contains(SCMContext.USER_ANONYMOUS)) { if (!userDAO.contains(SCMContext.USER_ANONYMOUS)) {
throw new ConfigurationException("trying to access anonymous but _anonymous user does not exist"); throw new NotAuthorizedException("trying to access anonymous but _anonymous user does not exist");
} }
checkArgument(authenticationToken instanceof AnonymousToken, "%s is required", AnonymousToken.class); checkArgument(authenticationToken instanceof AnonymousToken, "%s is required", AnonymousToken.class);
return helper.authenticationInfoBuilder(SCMContext.USER_ANONYMOUS).build(); return helper.authenticationInfoBuilder(SCMContext.USER_ANONYMOUS).build();

View File

@@ -8,10 +8,11 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
import sonia.scm.ConfigurationException;
import sonia.scm.SCMContext; import sonia.scm.SCMContext;
import sonia.scm.user.UserDAO; import sonia.scm.user.UserDAO;
import javax.ws.rs.NotAuthorizedException;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -56,7 +57,7 @@ class AnonymousRealmTest {
@Test @Test
void shouldThrowNotAuthorizedExceptionIfAnonymousUserNotExists() { void shouldThrowNotAuthorizedExceptionIfAnonymousUserNotExists() {
when(userDAO.contains(SCMContext.USER_ANONYMOUS)).thenReturn(false); when(userDAO.contains(SCMContext.USER_ANONYMOUS)).thenReturn(false);
assertThrows(ConfigurationException.class, () -> realm.doGetAuthenticationInfo(new AnonymousToken())); assertThrows(NotAuthorizedException.class, () -> realm.doGetAuthenticationInfo(new AnonymousToken()));
} }
@Test @Test