From a173486aad2d3d39e9e64649574f1e592c2263b8 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Tue, 5 Oct 2010 12:45:14 +0000 Subject: [PATCH] LMS-1780 Moved some classes/interfaces around to satisfy the dependency checker. SVN: 18148 --- .../openbis/dss/generic/server/DataStoreServer.java | 1 + .../server/DssServiceRpcAuthorizationAdvisor.java | 6 +++--- .../generic/server/api/v1/DssServiceRpcGeneric.java | 2 +- .../authorization}/DataSetCodeStringPredicate.java | 3 +-- .../api/authorization}/DataSetFileDTOPredicate.java | 3 +-- .../authorization/IAuthorizationGuardPredicate.java | 12 ++++++++++++ .../IDssServiceRpcGenericInternal.java | 3 ++- .../api/authorization}/NewDataSetPredicate.java | 3 +-- .../generic/shared/api/v1/IDssServiceRpcGeneric.java | 6 +++--- .../dss/client/api/v1/impl/DssComponentTest.java | 2 +- .../dss/generic/server/DssServiceRpcV1Test.java | 3 ++- 11 files changed, 28 insertions(+), 16 deletions(-) rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/DataSetCodeStringPredicate.java (90%) rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/DataSetFileDTOPredicate.java (91%) rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/IDssServiceRpcGenericInternal.java (91%) rename datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/{server => shared/api/authorization}/NewDataSetPredicate.java (96%) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java index 4460cb1e4af..5e0ba9043b8 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServer.java @@ -59,6 +59,7 @@ import ch.systemsx.cisd.openbis.dss.generic.server.ConfigParameters.PluginServle import ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataStoreApiUrlUtilities; import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil; import ch.systemsx.cisd.openbis.generic.shared.IServer; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java index f183acec8a5..dc99cbe01e1 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcAuthorizationAdvisor.java @@ -76,17 +76,17 @@ public class DssServiceRpcAuthorizationAdvisor extends DefaultPointcutAdvisor * * @param methodInterceptor */ - DssServiceRpcAuthorizationAdvisor(MethodInterceptor methodInterceptor) + public DssServiceRpcAuthorizationAdvisor(MethodInterceptor methodInterceptor) { super(new AnnotationMatchingPointcut(null, DataSetAccessGuard.class), methodInterceptor); } /** - * Package visible class for verifying authorization. + * Class for verifying authorization. Made public so it can be extended in tests. * * @author Chandrasekhar Ramakrishnan */ - static class DssServiceRpcAuthorizationMethodInterceptor implements MethodInterceptor + public static class DssServiceRpcAuthorizationMethodInterceptor implements MethodInterceptor { /** * Get the session token and any guarded parameters and invoke the guards on those diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java index f82007a7c93..4a15b239513 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v1/DssServiceRpcGeneric.java @@ -25,8 +25,8 @@ import java.util.ArrayList; import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked; import ch.systemsx.cisd.etlserver.api.v1.PutDataSetService; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDssServiceRpc; -import ch.systemsx.cisd.openbis.dss.generic.server.IDssServiceRpcGenericInternal; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssBuilder; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetCodeStringPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetCodeStringPredicate.java similarity index 90% rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetCodeStringPredicate.java rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetCodeStringPredicate.java index d93a912ad21..3906b6c795e 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetCodeStringPredicate.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetCodeStringPredicate.java @@ -14,11 +14,10 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.generic.server; +package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.UserFailureException; -import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IAuthorizationGuardPredicate; /** * Predicate for checking that the current user has access to a data set specified by code. diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetFileDTOPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetFileDTOPredicate.java similarity index 91% rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetFileDTOPredicate.java rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetFileDTOPredicate.java index 494639b2bd9..3317fc860f5 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataSetFileDTOPredicate.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/DataSetFileDTOPredicate.java @@ -14,11 +14,10 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.generic.server; +package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.UserFailureException; -import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IAuthorizationGuardPredicate; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO; /** diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java index 8a8fc37c074..b31739a7812 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IAuthorizationGuardPredicate.java @@ -21,10 +21,22 @@ import ch.systemsx.cisd.common.exceptions.UserFailureException; /** * Interface for objects that can function as guardClasses in an AuthorizationGuard. + * <p> + * Predicates should return Status.OK if the user is authorized for the action; they should return a + * status with an appropriate error message if the user is not authorized. * * @author Chandrasekhar Ramakrishnan */ public interface IAuthorizationGuardPredicate<T /* Receiver */, D /* Argument */> { + + /** + * Evaluate the predicate for the receiver object, sessionToken, and predicate argument. + * + * @param receiver The object on which the guarded method was called + * @param sessionToken A token identifying the user + * @param argument The argument to the predicate + * @return Status.OK if the action is allowed, Status.createError(<a message>) otherwise. + */ public Status evaluate(T receiver, String sessionToken, D argument) throws UserFailureException; } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/IDssServiceRpcGenericInternal.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IDssServiceRpcGenericInternal.java similarity index 91% rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/IDssServiceRpcGenericInternal.java rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IDssServiceRpcGenericInternal.java index 4c261c5c362..c84a710d73e 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/IDssServiceRpcGenericInternal.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/IDssServiceRpcGenericInternal.java @@ -14,10 +14,11 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.generic.server; +package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization; import java.io.File; +import ch.systemsx.cisd.openbis.dss.generic.server.DataStoreServer; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.IDssServiceRpcGeneric; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/NewDataSetPredicate.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/NewDataSetPredicate.java similarity index 96% rename from datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/NewDataSetPredicate.java rename to datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/NewDataSetPredicate.java index 20e64f4025d..977ed3cd686 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/NewDataSetPredicate.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/authorization/NewDataSetPredicate.java @@ -14,11 +14,10 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.dss.generic.server; +package ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization; import ch.systemsx.cisd.common.exceptions.Status; import ch.systemsx.cisd.common.exceptions.UserFailureException; -import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IAuthorizationGuardPredicate; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.NewDataSetDTO.DataSetOwner; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java index d6769be8931..7976c9bf308 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/IDssServiceRpcGeneric.java @@ -20,11 +20,11 @@ import java.io.InputStream; import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked; import ch.systemsx.cisd.common.api.IRpcService; -import ch.systemsx.cisd.openbis.dss.generic.server.DataSetCodeStringPredicate; -import ch.systemsx.cisd.openbis.dss.generic.server.DataSetFileDTOPredicate; -import ch.systemsx.cisd.openbis.dss.generic.server.NewDataSetPredicate; import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.AuthorizationGuard; import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetAccessGuard; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetCodeStringPredicate; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.DataSetFileDTOPredicate; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.NewDataSetPredicate; /** * Generic functionality for interacting with the DSS. diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java index 835039f3a5e..b0a95c7523c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/client/api/v1/impl/DssComponentTest.java @@ -46,9 +46,9 @@ import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.openbis.dss.client.api.v1.IDataSetDss; import ch.systemsx.cisd.openbis.dss.generic.server.AbstractDssServiceRpc; import ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor; -import ch.systemsx.cisd.openbis.dss.generic.server.IDssServiceRpcGenericInternal; import ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataStoreApiUrlUtilities; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssBuilder; diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java index 56ecc3ec170..79e1ad71fe8 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DssServiceRpcV1Test.java @@ -57,6 +57,7 @@ import ch.systemsx.cisd.etlserver.validation.IDataSetValidator; import ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor.DssServiceRpcAuthorizationMethodInterceptor; import ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; +import ch.systemsx.cisd.openbis.dss.generic.shared.api.authorization.IDssServiceRpcGenericInternal; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.DataSetFileDTO; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssBuilder; import ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.FileInfoDssDTO; @@ -499,7 +500,7 @@ public class DssServiceRpcV1Test extends AbstractFileSystemTestCase private static class TestMethodInterceptor extends DssServiceRpcAuthorizationMethodInterceptor implements MethodInterceptor { - boolean methodInvoked = false; + private boolean methodInvoked = false; @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable -- GitLab