From 4610f4f36a7291aee84b48f6cade4fa7bd6342ae Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 20 Dec 2021 17:37:43 +0100 Subject: [PATCH] TST: fix tests --- .../java/org/caosdb/server/CaosDBServer.java | 5 ++- .../server/authentication/AuthTokenTest.java | 1 + .../server/permissions/EntityACLTest.java | 32 ++----------------- .../TestAbstractCaosDBServerResource.java | 1 + .../resource/TestScriptingResource.java | 4 +++ .../resource/TestSharedFileResource.java | 8 +---- 6 files changed, 14 insertions(+), 37 deletions(-) diff --git a/src/main/java/org/caosdb/server/CaosDBServer.java b/src/main/java/org/caosdb/server/CaosDBServer.java index f238bdd7..fab783b7 100644 --- a/src/main/java/org/caosdb/server/CaosDBServer.java +++ b/src/main/java/org/caosdb/server/CaosDBServer.java @@ -284,7 +284,10 @@ public class CaosDBServer extends Application { final Ini config = getShiroConfig(); initShiro(config); - // Init Permissions + // Init ACMPermissions.ALL - the whole point is to fill all these + // permissions into ACMPermissions.ALL for retrieval by clients. If we don't + // do this, every work, but the list of known permissions grows over time + // (as soon as these classes are used for the first time) logger.debug("Register permissions: ", ScriptingPermissions.PERMISSION_EXECUTION("*")); logger.debug("Register permissions: ", CheckStateTransition.STATE_PERMISSIONS.toString()); logger.debug( diff --git a/src/test/java/org/caosdb/server/authentication/AuthTokenTest.java b/src/test/java/org/caosdb/server/authentication/AuthTokenTest.java index 2f636e61..0b19b414 100644 --- a/src/test/java/org/caosdb/server/authentication/AuthTokenTest.java +++ b/src/test/java/org/caosdb/server/authentication/AuthTokenTest.java @@ -396,6 +396,7 @@ public class AuthTokenTest { OneTimeAuthenticationToken.initConfig(new CharSequenceInputStream(testYaml, "utf-8")); Subject anonymous = SecurityUtils.getSubject(); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); anonymous.login(AnonymousAuthenticationToken.getInstance()); OneTimeAuthenticationToken token = diff --git a/src/test/java/org/caosdb/server/permissions/EntityACLTest.java b/src/test/java/org/caosdb/server/permissions/EntityACLTest.java index b606346a..30c0cd99 100644 --- a/src/test/java/org/caosdb/server/permissions/EntityACLTest.java +++ b/src/test/java/org/caosdb/server/permissions/EntityACLTest.java @@ -35,6 +35,7 @@ import java.util.Set; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.caosdb.server.CaosDBServer; +import org.caosdb.server.ServerProperties; import org.caosdb.server.accessControl.AnonymousAuthenticationToken; import org.caosdb.server.accessControl.AuthenticationUtils; import org.caosdb.server.accessControl.Config; @@ -328,6 +329,7 @@ public class EntityACLTest { @Test public void testEntityACLForAnonymous() { Subject anonymous = SecurityUtils.getSubject(); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); anonymous.login(AnonymousAuthenticationToken.getInstance()); assertTrue(AuthenticationUtils.isAnonymous(anonymous)); EntityACL acl = EntityACL.getOwnerACLFor(anonymous); @@ -335,35 +337,6 @@ public class EntityACLTest { assertTrue(acl.getOwners().isEmpty()); } - // @Test - // public void testParseFromElement() throws JDOMException, IOException { - // Assert.assertEquals("[]", - // EntityACL.serialize(EntityACL.parseFromElement(stringToJdom("<ACL></ACL>")))); - // Assert.assertEquals("[]", EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Grant></Grant></ACL>")))); - // Assert.assertEquals("[]", EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Deny></Deny></ACL>")))); - // Assert.assertEquals("[]", EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Grant role='bla'></Grant></ACL>")))); - // Assert.assertEquals("[]", EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Deny role='bla'></Deny></ACL>")))); - // Assert.assertEquals( - // "{bla:2;}", - // EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Grant role='bla'><Permission - // name='DELETE'/></Grant></ACL>")))); - // Assert.assertEquals( - // "{bla:" + (Long.MIN_VALUE + 2) + ";}", - // EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Deny role='bla'><Permission name='DELETE' - // /></Deny></ACL>")))); - // Assert.assertEquals( - // "{bla:32;}", - // EntityACL.serialize(EntityACL - // .parseFromElement(stringToJdom("<ACL><Grant role='bla'><Permission name='RETRIEVE:ACL' - // /></Grant></ACL>")))); - // } - @Test public void testFactory() { final AbstractEntityACLFactory<EntityACL> f = new EntityACLFactory(); @@ -476,6 +449,7 @@ public class EntityACLTest { EntityACL acl = f.create(); Subject anonymous = SecurityUtils.getSubject(); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); anonymous.login(AnonymousAuthenticationToken.getInstance()); assertTrue(AuthenticationUtils.isAnonymous(anonymous)); diff --git a/src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java b/src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java index 5d81ca73..226c9aaa 100644 --- a/src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java +++ b/src/test/java/org/caosdb/server/resource/TestAbstractCaosDBServerResource.java @@ -89,6 +89,7 @@ public class TestAbstractCaosDBServerResource { @Test public void testReponseRootElement() throws IOException { final Subject user = new DelegatingSubject(new DefaultSecurityManager(new AnonymousRealm())); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); user.login(AnonymousAuthenticationToken.getInstance()); AbstractCaosDBServerResource s = new AbstractCaosDBServerResource() { diff --git a/src/test/java/org/caosdb/server/resource/TestScriptingResource.java b/src/test/java/org/caosdb/server/resource/TestScriptingResource.java index d8c1074c..566c8a09 100644 --- a/src/test/java/org/caosdb/server/resource/TestScriptingResource.java +++ b/src/test/java/org/caosdb/server/resource/TestScriptingResource.java @@ -32,6 +32,7 @@ import java.util.List; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.caosdb.server.CaosDBServer; +import org.caosdb.server.ServerProperties; import org.caosdb.server.accessControl.AnonymousAuthenticationToken; import org.caosdb.server.accessControl.CredentialsValidator; import org.caosdb.server.accessControl.Principal; @@ -205,6 +206,7 @@ public class TestScriptingResource { @Test public void testAnonymousWithOutPermission() { Subject user = SecurityUtils.getSubject(); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); user.login(AnonymousAuthenticationToken.getInstance()); Form form = new Form("call=anonymous_no_permission"); Representation entity = form.getWebRepresentation(); @@ -222,6 +224,7 @@ public class TestScriptingResource { @Test public void testAnonymousWithPermission() { Subject user = SecurityUtils.getSubject(); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); user.login(AnonymousAuthenticationToken.getInstance()); Form form = new Form("call=anonymous_ok"); Representation entity = form.getWebRepresentation(); @@ -254,6 +257,7 @@ public class TestScriptingResource { @Test public void testHandleForm() throws Message, IOException { Subject user = SecurityUtils.getSubject(); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); user.login(AnonymousAuthenticationToken.getInstance()); Form form = new Form("call=anonymous_ok"); assertEquals(0, resource.handleForm(form)); diff --git a/src/test/java/org/caosdb/server/resource/TestSharedFileResource.java b/src/test/java/org/caosdb/server/resource/TestSharedFileResource.java index 8dbbd5b1..bff03a45 100644 --- a/src/test/java/org/caosdb/server/resource/TestSharedFileResource.java +++ b/src/test/java/org/caosdb/server/resource/TestSharedFileResource.java @@ -122,16 +122,10 @@ public class TestSharedFileResource { provideUserSourcesFile(); final Subject user = new DelegatingSubject(new DefaultSecurityManager(new AnonymousRealm())); + CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true"); user.login(AnonymousAuthenticationToken.getInstance()); SharedFileResource resource = new SharedFileResource() { - // @Override - // protected Representation httpGetInChildClass() - // throws ConnectionException, IOException, SQLException, CaosDBException, - // NoSuchAlgorithmException, Exception { - // // TODO Auto-generated method stub - // return super.httpGetInChildClass(); - // } @Override public String getSRID() { -- GitLab