From 1cf12124670576f7bd13ca9f3e3448a603dfd4bf Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Wed, 8 Dec 2021 22:01:19 +0100 Subject: [PATCH] DEPS: update shiro --- pom.xml | 2 +- .../java/org/caosdb/server/CaosDBServer.java | 2 ++ src/main/java/org/caosdb/server/jobs/Job.java | 7 +++---- .../caosdb/server/jobs/core/CheckPropValid.java | 16 +++++++--------- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index d495e32d..609971c4 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> - <version>1.5.3</version> + <version>1.8.0</version> </dependency> <dependency> <groupId>junit</groupId> diff --git a/src/main/java/org/caosdb/server/CaosDBServer.java b/src/main/java/org/caosdb/server/CaosDBServer.java index 17bb1e50..a7aa4f8d 100644 --- a/src/main/java/org/caosdb/server/CaosDBServer.java +++ b/src/main/java/org/caosdb/server/CaosDBServer.java @@ -326,6 +326,8 @@ public class CaosDBServer extends Application { // ChecksumUpdater ChecksumUpdater.start(); + + ThreadContext.remove(); } } else { logger.info("NO BACKEND"); diff --git a/src/main/java/org/caosdb/server/jobs/Job.java b/src/main/java/org/caosdb/server/jobs/Job.java index 2de6b085..14d1185c 100644 --- a/src/main/java/org/caosdb/server/jobs/Job.java +++ b/src/main/java/org/caosdb/server/jobs/Job.java @@ -28,6 +28,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Set; import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.AuthorizationException; import org.apache.shiro.authz.Permission; import org.apache.shiro.subject.Subject; import org.caosdb.server.CaosDBException; @@ -301,10 +302,8 @@ public abstract class Job { } protected final void checkPermission(final EntityInterface entity, final Permission permission) - throws Message { - if (!entity.getEntityACL().isPermitted(SecurityUtils.getSubject(), permission)) { - throw ServerMessages.AUTHORIZATION_ERROR; - } + throws AuthorizationException { + entity.checkPermission(permission); } /** diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java index 390deedd..7d9dbc91 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java @@ -23,7 +23,7 @@ package org.caosdb.server.jobs.core; import static org.caosdb.server.utils.ServerMessages.ENTITY_DOES_NOT_EXIST; - +import org.apache.shiro.authz.AuthorizationException; import com.google.common.base.Objects; import org.caosdb.server.database.exceptions.EntityDoesNotExistException; import org.caosdb.server.database.exceptions.EntityWasNotUniqueException; @@ -124,11 +124,14 @@ public class CheckPropValid extends EntityJob { } } } catch (final Message m) { - addError(property, m); + property.addError(m); + } catch (AuthorizationException e) { + property.addError( ServerMessages.AUTHORIZATION_ERROR); + property.addInfo(e.getMessage()); } catch (final EntityDoesNotExistException e) { - addError(property, ENTITY_DOES_NOT_EXIST); + property.addError( ENTITY_DOES_NOT_EXIST); } catch (final EntityWasNotUniqueException e) { - addError(property, ServerMessages.ENTITY_NAME_DUPLICATES); + property.addError( ServerMessages.ENTITY_NAME_DUPLICATES); } } @@ -147,11 +150,6 @@ public class CheckPropValid extends EntityJob { checkPermission(property, EntityPermission.USE_AS_PROPERTY); } - private void addError(final EntityInterface property, final Message m) { - property.addError(m); - property.setEntityStatus(EntityStatus.UNQUALIFIED); - } - private static void deriveOverrideStatus(final Property child, final EntityInterface parent) { if (!Objects.equal(child.getName(), parent.getName())) { if (child.hasName()) { -- GitLab