diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/ContextUtility.java b/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/ContextUtility.java index 4955971..873f748 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/ContextUtility.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/ContextUtility.java @@ -21,7 +21,6 @@ import org.gcube.informationsystem.resourceregistry.api.exceptions.context.Conte import org.gcube.informationsystem.resourceregistry.contexts.security.AdminSecurityContext; import org.gcube.informationsystem.resourceregistry.contexts.security.SecurityContext; import org.gcube.informationsystem.resourceregistry.contexts.security.SecurityContext.PermissionMode; -import org.gcube.informationsystem.resourceregistry.dbinitialization.DatabaseEnvironment; import org.gcube.informationsystem.resourceregistry.instances.base.ElementManagementUtility; import org.gcube.informationsystem.resourceregistry.utils.Utility; import org.slf4j.Logger; @@ -105,7 +104,7 @@ public class ContextUtility { public static AdminSecurityContext getAdminSecurityContext() throws ResourceRegistryException { AdminSecurityContext adminSecurityContext = (AdminSecurityContext) ContextUtility.getInstance() - .getSecurityContextByUUID(DatabaseEnvironment.ADMIN_SECURITY_CONTEXT_UUID); + .getSecurityContextByUUID(AdminSecurityContext.ADMIN_SECURITY_CONTEXT_UUID); return adminSecurityContext; } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java index 9db3857..7350d6d 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/contexts/entities/ContextManagement.java @@ -30,8 +30,8 @@ import org.gcube.informationsystem.resourceregistry.api.exceptions.context.Conte import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaViolationException; import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility; import org.gcube.informationsystem.resourceregistry.contexts.relations.IsParentOfManagement; +import org.gcube.informationsystem.resourceregistry.contexts.security.ContextSecurityContext; import org.gcube.informationsystem.resourceregistry.contexts.security.SecurityContext; -import org.gcube.informationsystem.resourceregistry.dbinitialization.DatabaseEnvironment; import org.gcube.informationsystem.resourceregistry.instances.base.entities.EntityElementManagement; import org.gcube.informationsystem.resourceregistry.utils.Utility; import org.gcube.informationsystem.types.reference.entities.EntityType; @@ -111,7 +111,7 @@ public class ContextManagement extends EntityElementManagement RESERVED_CONTEX_UUID_STRING; - public static final Set RESERVED_CONTEX_UUID; + protected static final String DB_KEY_FILENAME_VARNAME = "DB_KEY_FILENAME"; protected static final String DB_KEY_ALGORITHM_VARNAME = "DB_KEY_ALGORITHM"; @@ -194,26 +178,7 @@ public class DatabaseEnvironment { throw new RuntimeException("Unable to load properties", e); } - RESERVED_CONTEX_UUID_STRING = new HashSet<>(); - RESERVED_CONTEX_UUID = new HashSet<>(); - - - ADMIN_SECURITY_CONTEXT = "00000000-0000-0000-0000-000000000000"; - RESERVED_CONTEX_UUID_STRING.add(ADMIN_SECURITY_CONTEXT); - ADMIN_SECURITY_CONTEXT_UUID = UUID.fromString(ADMIN_SECURITY_CONTEXT); - RESERVED_CONTEX_UUID.add(ADMIN_SECURITY_CONTEXT_UUID); - - // Used to persist Schemas - SCHEMA_SECURITY_CONTEXT = "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee"; - RESERVED_CONTEX_UUID_STRING.add(SCHEMA_SECURITY_CONTEXT); - SCHEMA_SECURITY_CONTEXT_UUID = UUID.fromString(SCHEMA_SECURITY_CONTEXT); - RESERVED_CONTEX_UUID.add(SCHEMA_SECURITY_CONTEXT_UUID); - // Used to Persist Context and their relations - CONTEXT_SECURITY_CONTEXT = "ffffffff-ffff-ffff-ffff-ffffffffffff"; - RESERVED_CONTEX_UUID_STRING.add(CONTEXT_SECURITY_CONTEXT); - CONTEXT_SECURITY_CONTEXT_UUID = UUID.fromString(CONTEXT_SECURITY_CONTEXT); - RESERVED_CONTEX_UUID.add(CONTEXT_SECURITY_CONTEXT_UUID); try { boolean created = initGraphDB(); @@ -223,6 +188,9 @@ public class DatabaseEnvironment { AdminSecurityContext adminSecurityContext = new AdminSecurityContext(); contextUtility.addSecurityContext(adminSecurityContext.getUUID().toString(), adminSecurityContext); + QueryTemplatesSecurityContext queryTemplatesSecurityContext = new QueryTemplatesSecurityContext(); + contextUtility.addSecurityContext(queryTemplatesSecurityContext.getUUID().toString(), queryTemplatesSecurityContext); + ContextSecurityContext contextSecurityContext = new ContextSecurityContext(); contextUtility.addSecurityContext(contextSecurityContext.getUUID().toString(), contextSecurityContext); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java index a2dc771..242e41c 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/types/entities/EntityTypeDefinitionManagement.java @@ -14,8 +14,8 @@ import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.Schema import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaViolationException; import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility; +import org.gcube.informationsystem.resourceregistry.contexts.security.SchemaSecurityContext; import org.gcube.informationsystem.resourceregistry.contexts.security.SecurityContext; -import org.gcube.informationsystem.resourceregistry.dbinitialization.DatabaseEnvironment; import org.gcube.informationsystem.resourceregistry.instances.base.ElementManagementUtility; import org.gcube.informationsystem.resourceregistry.instances.base.entities.EntityElementManagement; import org.gcube.informationsystem.resourceregistry.utils.Utility; @@ -51,7 +51,7 @@ public abstract class EntityTypeDefinitionManagement exten protected SecurityContext getWorkingContext() throws ResourceRegistryException { if (workingContext == null) { workingContext = ContextUtility.getInstance() - .getSecurityContextByUUID(DatabaseEnvironment.SCHEMA_SECURITY_CONTEXT_UUID); + .getSecurityContextByUUID(SchemaSecurityContext.SCHEMA_SECURITY_CONTEXT_UUID); } return workingContext; } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java b/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java index 9babfab..019b16f 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/types/properties/PropertyTypeDefinitionManagement.java @@ -13,8 +13,8 @@ import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.Schema import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaNotFoundException; import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaViolationException; import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility; +import org.gcube.informationsystem.resourceregistry.contexts.security.SchemaSecurityContext; import org.gcube.informationsystem.resourceregistry.contexts.security.SecurityContext; -import org.gcube.informationsystem.resourceregistry.dbinitialization.DatabaseEnvironment; import org.gcube.informationsystem.resourceregistry.instances.base.ElementManagement; import org.gcube.informationsystem.resourceregistry.instances.base.ElementManagementUtility; import org.gcube.informationsystem.resourceregistry.utils.Utility; @@ -58,7 +58,7 @@ public class PropertyTypeDefinitionManagement extends ElementManagement