diff --git a/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java b/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java index 62ffb804517..f8797643bcd 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java @@ -36,7 +36,6 @@ import org.eclipse.kapua.service.KapuaService; import org.eclipse.kapua.service.account.Account; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.config.KapuaConfigurableService; /** @@ -118,8 +117,8 @@ protected AbstractKapuaConfigurableResourceLimitedService( * The {@link CacheFactory} that handles caching of the entities * @since 1.2.0 * @deprecated Since 2.0.0. Please use - * {@link #AbstractKapuaConfigurableResourceLimitedService(String, Domain, EntityManagerFactory, EntityCacheFactory, KapuaEntityFactory, PermissionFactory, AuthorizationService, - * AccountRelativeFinder, RootUserTester)} This constructor may be removed in a next release + * {@link #AbstractKapuaConfigurableResourceLimitedService(String, Domain, EntityManagerFactory, EntityCacheFactory, KapuaEntityFactory, AuthorizationService, AccountRelativeFinder, + * RootUserTester)} This constructor may be removed in a next release */ @Deprecated protected AbstractKapuaConfigurableResourceLimitedService( @@ -129,7 +128,7 @@ protected AbstractKapuaConfigurableResourceLimitedService( EntityCacheFactory abstractCacheFactory, Class serviceClass, Class factoryClass) { - super(pid, domain, entityManagerFactory, abstractCacheFactory, null, null, null); + super(pid, domain, entityManagerFactory, abstractCacheFactory, null, null); /* These should be provided by the Locator, but in most cases when this class is instantiated through this constructor the Locator is not yet ready, @@ -153,8 +152,6 @@ protected AbstractKapuaConfigurableResourceLimitedService( * The {@link CacheFactory} that handles caching of the entities * @param factory * The {@link KapuaEntityFactory} instance. - * @param permissionFactory - * The {@link PermissionFactory} instance. * @param authorizationService * The {@link AuthorizationService} instance. * @param rootUserTester @@ -165,11 +162,10 @@ protected AbstractKapuaConfigurableResourceLimitedService(String pid, EntityManagerFactory entityManagerFactory, EntityCacheFactory abstractCacheFactory, F factory, - PermissionFactory permissionFactory, AuthorizationService authorizationService, AccountRelativeFinder accountRelativeFinder, RootUserTester rootUserTester) { - super(pid, domain, entityManagerFactory, abstractCacheFactory, permissionFactory, authorizationService, rootUserTester); + super(pid, domain, entityManagerFactory, abstractCacheFactory, authorizationService, rootUserTester); this.factory = factory; this.factoryClass = null; //TODO: not needed for this construction path, remove as soon as the deprecated constructor is removed this.accountRelativeFinder = accountRelativeFinder; diff --git a/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableService.java b/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableService.java index da5af63e3c1..2a0e16a3526 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableService.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableService.java @@ -62,7 +62,7 @@ import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.account.Account; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.config.KapuaConfigurableService; import org.eclipse.kapua.storage.TxManager; import org.eclipse.kapua.storage.TxManagerImpl; @@ -85,7 +85,6 @@ public abstract class AbstractKapuaConfigurableService extends AbstractKapuaServ private final String pid; //TODO: make final as soon as deprecated constructors are removed - private PermissionFactory permissionFactory; private AuthorizationService authorizationService; private RootUserTester rootUserTester; protected TxManager txManager; @@ -137,7 +136,6 @@ protected AbstractKapuaConfigurableService(String pid, Domain domain, EntityMana */ null, null, - null, null); } @@ -168,7 +166,6 @@ protected AbstractKapuaConfigurableService(String pid, Domain domain, EntityMana therefore fetching of these instances is demanded to the artificial getters introduced. */ null, - null, null); } @@ -190,14 +187,12 @@ protected AbstractKapuaConfigurableService(String pid, Domain domain, EntityManagerFactory entityManagerFactory, EntityCacheFactory abstractCacheFactory, - PermissionFactory permissionFactory, AuthorizationService authorizationService, RootUserTester rootUserTester) { super(entityManagerFactory, abstractCacheFactory); this.pid = pid; this.domain = domain; - this.permissionFactory = permissionFactory; this.authorizationService = authorizationService; this.rootUserTester = rootUserTester; this.txManager = new TxManagerImpl( @@ -458,7 +453,7 @@ private KapuaTocd getConfigMetadata(KapuaId scopeId, boolean excludeDisabled) th throw new KapuaServiceDisabledException(pid); } // Check access - getAuthorizationService().checkPermission(getPermissionFactory().newPermission(Optional.ofNullable(domain).map(d -> d.getName()).orElse(null), Actions.read, scopeId)); + getAuthorizationService().checkPermission(new Permission(Optional.ofNullable(domain).map(d -> d.getName()).orElse(null), Actions.read, scopeId)); // Get the Tocd // Keep distinct values for service PID, Scope ID and disabled properties included/excluded from AD Triple cacheKey = Triple.of(pid, scopeId, excludeDisabled); @@ -526,7 +521,7 @@ protected Map getConfigValues(KapuaId scopeId, boolean excludeDi // Argument validation ArgumentValidator.notNull(scopeId, "scopeId"); // Check access - getAuthorizationService().checkPermission(getPermissionFactory().newPermission(Optional.ofNullable(domain).map(d -> d.getName()).orElse(null), Actions.read, scopeId)); + getAuthorizationService().checkPermission(new Permission(Optional.ofNullable(domain).map(d -> d.getName()).orElse(null), Actions.read, scopeId)); // Get configuration values KapuaQuery query = new KapuaQuery(scopeId); @@ -580,7 +575,7 @@ public void setConfigValues(KapuaId scopeId, KapuaId parentId, Map d.getName()).orElse(null), Actions.write, scopeId)); + getAuthorizationService().checkPermission(new Permission(Optional.ofNullable(domain).map(d -> d.getName()).orElse(null), Actions.write, scopeId)); validateConfigurations(ocd, values, scopeId, parentId); @@ -639,20 +634,6 @@ public String getServicePid() { return pid; } - /** - * PermissionFactory should be provided by the Locator, but in most cases when this class is instantiated through this constructor the Locator is not yet ready, therefore fetching of the required - * instance is demanded to this artificial getter. - * - * @return The instantiated (hopefully) {@link PermissionFactory} instance - */ - //TODO: Remove as soon as deprecated constructors are removed, use field directly instead. - protected PermissionFactory getPermissionFactory() { - if (permissionFactory == null) { - permissionFactory = KapuaLocator.getInstance().getFactory(PermissionFactory.class); - } - return permissionFactory; - } - /** * AuthorizationService should be provided by the Locator, but in most cases when this class is instantiated through the deprecated constructor the Locator is not yet ready, therefore fetching of * the required instance is demanded to this artificial getter. diff --git a/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java b/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java index daebf7f0cf0..8ed60f2a4c4 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/configuration/KapuaConfigurableServiceBase.java @@ -22,17 +22,17 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.KapuaService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.config.KapuaConfigurableService; import org.eclipse.kapua.storage.TxManager; /** * Base {@link KapuaConfigurableService} implementation, build upon {@link ServiceConfigurationManager}. *

- * Note: at first glance, this might seems like a violation of Composition over Inheritance principle, however: - * - in this case inheritance is an acceptable strategy due to the strong link between {@link ServiceConfigurationManager#isServiceEnabled(org.eclipse.kapua.storage.TxContext, KapuaId)} - * and {@link org.eclipse.kapua.service.KapuaService#isServiceEnabled(KapuaId)} (the latter being dependent from the first for configurable services). - * - this class is nothing more than glue and convenience, demanding all of its logic to the {@link ServiceConfigurationManager}'s instance provided, so no flexibility has been sacrificed + * Note: at first glance, this might seems like a violation of Composition over Inheritance principle, however: - in this case inheritance is an acceptable strategy due to the strong link between + * {@link ServiceConfigurationManager#isServiceEnabled(org.eclipse.kapua.storage.TxContext, KapuaId)} and {@link org.eclipse.kapua.service.KapuaService#isServiceEnabled(KapuaId)} (the latter being + * dependent from the first for configurable services). - this class is nothing more than glue and convenience, demanding all of its logic to the {@link ServiceConfigurationManager}'s instance + * provided, so no flexibility has been sacrificed * * @since 2.0.0 */ @@ -44,19 +44,16 @@ public class KapuaConfigurableServiceBase protected final ServiceConfigurationManager serviceConfigurationManager; private final String domain; protected final AuthorizationService authorizationService; - protected final PermissionFactory permissionFactory; public KapuaConfigurableServiceBase( TxManager txManager, ServiceConfigurationManager serviceConfigurationManager, String authorizationDomain, - AuthorizationService authorizationService, - PermissionFactory permissionFactory) { + AuthorizationService authorizationService) { this.txManager = txManager; this.serviceConfigurationManager = serviceConfigurationManager; this.domain = authorizationDomain; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; } @Override @@ -73,7 +70,7 @@ public KapuaTocd getConfigMetadata(KapuaId scopeId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(domain, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(domain, Actions.read, scopeId)); return txManager.execute(tx -> serviceConfigurationManager.getConfigMetadata(tx, scopeId, true)); } @@ -83,7 +80,7 @@ public Map getConfigValues(KapuaId scopeId) throws KapuaExceptio ArgumentValidator.notNull(scopeId, "scopeId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(domain, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(domain, Actions.read, scopeId)); return txManager.execute(tx -> serviceConfigurationManager.getConfigValues(tx, scopeId, true)); } @@ -94,7 +91,7 @@ public void setConfigValues(KapuaId scopeId, KapuaId parentId, Mapexecute(tx -> { serviceConfigurationManager.setConfigValues(tx, scopeId, Optional.ofNullable(parentId), values); diff --git a/commons/src/main/java/org/eclipse/kapua/commons/event/ServiceEventModule.java b/commons/src/main/java/org/eclipse/kapua/commons/event/ServiceEventModule.java index 718dd069fdd..20e92ae1355 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/event/ServiceEventModule.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/event/ServiceEventModule.java @@ -30,7 +30,6 @@ import org.eclipse.kapua.event.ServiceEventBus; import org.eclipse.kapua.locator.KapuaLocator; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.storage.TxManagerImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -100,7 +99,6 @@ public void start() throws KapuaException { final KapuaLocator locator = KapuaLocator.getInstance(); houseKeeperJob = new ServiceEventHousekeeper( new EventStoreServiceImpl(locator.getService(AuthorizationService.class), - locator.getFactory(PermissionFactory.class), new TxManagerImpl(() -> new JpaTxContext(serviceEventModuleConfiguration.getEntityManagerFactory().getJpaEntityManagerFactory()), serviceEventModuleConfiguration.maxInsertAttempts), new EventStoreRecordImplJpaRepository(serviceEventModuleConfiguration.getKapuaJpaRepositoryConfiguration()) diff --git a/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/internal/EventStoreServiceImpl.java b/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/internal/EventStoreServiceImpl.java index 3d2e6088a32..fe6865cbb1c 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/internal/EventStoreServiceImpl.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/internal/EventStoreServiceImpl.java @@ -28,7 +28,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; /** @@ -40,18 +40,15 @@ public class EventStoreServiceImpl implements EventStoreService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final EventStoreRecordRepository repository; @Inject public EventStoreServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, EventStoreRecordRepository repository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.repository = repository; } @@ -71,7 +68,7 @@ public EventStoreRecord update(EventStoreRecord kapuaEvent) // Validation of the fields ArgumentValidator.notNull(kapuaEvent.getId(), "kapuaEvent.id"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.EVENT_STORE, Actions.write, kapuaEvent.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.EVENT_STORE, Actions.write, kapuaEvent.getScopeId())); // Do update return txManager.execute(tx -> repository.update(tx, kapuaEvent)); } @@ -85,7 +82,7 @@ public void delete(KapuaId scopeId, KapuaId kapuaEventId) ArgumentValidator.notNull(kapuaEventId, KapuaEntityAttributes.ENTITY_ID); // Check Access Actions action = Actions.write; - authorizationService.checkPermission(permissionFactory.newPermission(Domains.EVENT_STORE, action, scopeId)); + authorizationService.checkPermission(new Permission(Domains.EVENT_STORE, action, scopeId)); // Do delete txManager.execute(tx -> repository.delete(tx, scopeId, kapuaEventId)); } @@ -97,7 +94,7 @@ public EventStoreRecord find(KapuaId scopeId, KapuaId kapuaEventId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(kapuaEventId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.EVENT_STORE, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.EVENT_STORE, Actions.read, scopeId)); // Make sure kapuaEvent exists return txManager.execute(tx -> repository.find(tx, scopeId, kapuaEventId)) .orElse(null); @@ -109,7 +106,7 @@ public EventStoreRecord find(KapuaId kapuaEventId) // Validation of the fields ArgumentValidator.notNull(kapuaEventId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.EVENT_STORE, Actions.read, kapuaEventId)); + authorizationService.checkPermission(new Permission(Domains.EVENT_STORE, Actions.read, kapuaEventId)); return txManager.execute(tx -> repository.find(tx, KapuaId.ANY, kapuaEventId)) .orElse(null); @@ -120,7 +117,7 @@ public EventStoreRecordListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.EVENT_STORE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.EVENT_STORE, Actions.read, query.getScopeId())); return txManager.execute(tx -> repository.query(tx, query)); } @@ -129,7 +126,7 @@ public long count(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.EVENT_STORE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.EVENT_STORE, Actions.read, query.getScopeId())); return txManager.execute(tx -> repository.count(tx, query)); } } diff --git a/console/module/account/src/main/java/org/eclipse/kapua/app/console/module/account/server/GwtAccountServiceImpl.java b/console/module/account/src/main/java/org/eclipse/kapua/app/console/module/account/server/GwtAccountServiceImpl.java index b62534c6c61..7b013f2750b 100644 --- a/console/module/account/src/main/java/org/eclipse/kapua/app/console/module/account/server/GwtAccountServiceImpl.java +++ b/console/module/account/src/main/java/org/eclipse/kapua/app/console/module/account/server/GwtAccountServiceImpl.java @@ -73,7 +73,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.exception.SubjectUnauthorizedException; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.role.RoleCreator; import org.eclipse.kapua.service.authorization.role.RoleService; import org.eclipse.kapua.service.config.KapuaConfigurableService; @@ -111,8 +110,6 @@ public class GwtAccountServiceImpl extends KapuaRemoteServiceServlet implements private static final EndpointInfoService ENDPOINT_INFO_SERVICE = LOCATOR.getService(EndpointInfoService.class); private static final AuthorizationService AUTHORIZATION_SERVICE = LOCATOR.getService(AuthorizationService.class); - private static final PermissionFactory PERMISSION_FACTORY = LOCATOR.getFactory(PermissionFactory.class); - private static final RoleService ROLE_SERVICE = LOCATOR.getService(RoleService.class); private static final UserService USER_SERVICE = LOCATOR.getService(UserService.class); @@ -149,7 +146,7 @@ public GwtAccount create(GwtXSRFToken xsrfToken, GwtAccountCreator gwtAccountCre @Override public void run() throws Exception { // Admin - Permission adminPermission = PERMISSION_FACTORY.newPermission((String) null, null, account.getId(), null, true); + Permission adminPermission = new Permission((String) null, null, account.getId(), null, true); RoleCreator adminRoleCreator = new RoleCreator(account.getId()); adminRoleCreator.setName("Admin"); @@ -159,7 +156,7 @@ public void run() throws Exception { ROLE_SERVICE.create(adminRoleCreator); // Thing - Permission thingPermission = PERMISSION_FACTORY.newPermission(Domains.BROKER, Actions.connect, account.getId(), null, false); + Permission thingPermission = new Permission(Domains.BROKER, Actions.connect, account.getId(), null, false); RoleCreator thingRoleCreator = new RoleCreator(account.getId()); thingRoleCreator.setName("Thing"); @@ -237,7 +234,7 @@ public Account call() throws Exception { } accountPropertiesPairs.add(new GwtGroupedNVPair("accountInfo", "accountName", account.getName())); - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.ENDPOINT_INFO, Actions.read, scopeId))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.ENDPOINT_INFO, Actions.read, scopeId))) { //TODO: #LAYER_VIOLATION - related entities lookup should not be done here EndpointInfoListResult endpointInfos = KapuaSecurityUtils.doPrivileged(new Callable() { diff --git a/console/module/api/src/main/java/org/eclipse/kapua/app/console/module/api/shared/model/session/GwtSession.java b/console/module/api/src/main/java/org/eclipse/kapua/app/console/module/api/shared/model/session/GwtSession.java index e63ef0986fb..8a738455957 100644 --- a/console/module/api/src/main/java/org/eclipse/kapua/app/console/module/api/shared/model/session/GwtSession.java +++ b/console/module/api/src/main/java/org/eclipse/kapua/app/console/module/api/shared/model/session/GwtSession.java @@ -12,15 +12,14 @@ *******************************************************************************/ package org.eclipse.kapua.app.console.module.api.shared.model.session; -import org.eclipse.kapua.app.console.module.api.shared.model.KapuaBaseModel; -import org.eclipse.kapua.service.authorization.permission.Permission; - import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.eclipse.kapua.app.console.module.api.shared.model.KapuaBaseModel; + public class GwtSession extends KapuaBaseModel implements Serializable { private static final long serialVersionUID = -4511854889803351914L; @@ -229,7 +228,8 @@ public boolean isSelectedAccountFirstLevel() { *

  • /1/1234 = level 1
  • * * - * @param level The level to check against + * @param level + * The level to check against * @return {@code true} if it is, {@code false} otherwise * @since 2.0.0 */ @@ -304,12 +304,14 @@ public void addSessionPermission(GwtSessionPermission permission) { } /** - * Checks that the current {@link GwtSession} has the given session. - * This methods uses {@link #hasPermission(GwtSessionPermission)} instantiating the actual {@link GwtSessionPermission}. + * Checks that the current {@link GwtSession} has the given session. This methods uses {@link #hasPermission(GwtSessionPermission)} instantiating the actual {@link GwtSessionPermission}. * - * @param domain The domain to check - * @param action The {@link GwtSessionPermissionAction} to check - * @param targetScope The {@link GwtSessionPermissionScope} to check + * @param domain + * The domain to check + * @param action + * The {@link GwtSessionPermissionAction} to check + * @param targetScope + * The {@link GwtSessionPermissionScope} to check * @return {@code true} if the current {@link GwtSession} has the permission, {@code false} otherwise * @since 1.0.0 */ @@ -320,13 +322,14 @@ public boolean hasPermission(String domain, GwtSessionPermissionAction action, G /** * Checks that the current {@link GwtSession} has the given {@link GwtSessionPermission}. *

    - * This check is done simulating the permission check performed by the {@link org.eclipse.kapua.service.authorization.AuthorizationService#isPermitted(Permission)}. - * This does not introduces any security risk, since it will only allow to see/have access to certain elements of the UI while service access check is still performed on each call. + * This check is done simulating the permission check performed by the {@link org.eclipse.kapua.service.authorization.AuthorizationService#isPermitted(Permission)}. This does not introduces any + * security risk, since it will only allow to see/have access to certain elements of the UI while service access check is still performed on each call. *

    * After the check, the result is cached to allow faster check for subsequent check for the same permission. *

    * - * @param permissionToCheck The {@link GwtSessionPermission} to check + * @param permissionToCheck + * The {@link GwtSessionPermission} to check * @return {@code true} if the current {@link GwtSession} has the permission, {@code false} otherwise * @since 1.0.0 */ @@ -348,10 +351,11 @@ public boolean hasPermission(GwtSessionPermission permissionToCheck) { } /** - * This methods simulates the check that is performed by the {@link org.eclipse.kapua.service.authorization.AuthorizationService#isPermitted(Permission)}. - * {@link Permission#getForwardable()} property is supported in a different way, but produces the same results. + * This methods simulates the check that is performed by the {@link org.eclipse.kapua.service.authorization.AuthorizationService#isPermitted(Permission)}. {@link Permission#getForwardable()} + * property is supported in a different way, but produces the same results. * - * @param permissionToCheck The {@link GwtSessionPermission} to check + * @param permissionToCheck + * The {@link GwtSessionPermission} to check * @return {@code true} if the current {@link GwtSession} has the permission, {@code false} otherwise * @since 1.0.0 */ @@ -365,16 +369,16 @@ private boolean isPermitted(GwtSessionPermission permissionToCheck) { boolean check = false; switch (gsp.getPermissionScope()) { - case ALL: - check = true; - break; - case CHILDREN: - check = (GwtSessionPermissionScope.CHILDREN.equals(permissionToCheckScope) || - GwtSessionPermissionScope.SELF.equals(permissionToCheckScope)); - break; - case SELF: - check = GwtSessionPermissionScope.SELF.equals(permissionToCheckScope); - break; + case ALL: + check = true; + break; + case CHILDREN: + check = (GwtSessionPermissionScope.CHILDREN.equals(permissionToCheckScope) || + GwtSessionPermissionScope.SELF.equals(permissionToCheckScope)); + break; + case SELF: + check = GwtSessionPermissionScope.SELF.equals(permissionToCheckScope); + break; } if (check) { @@ -401,11 +405,11 @@ public boolean isFormDirty() { /** * Set user interface into dirty state. * - * @param formDirty true if user will need to confirm menu change. + * @param formDirty + * true if user will need to confirm menu change. */ public void setFormDirty(boolean formDirty) { this.formDirty = formDirty; } - } diff --git a/console/module/authorization/src/main/java/org/eclipse/kapua/app/console/module/authorization/shared/util/GwtKapuaAuthorizationModelConverter.java b/console/module/authorization/src/main/java/org/eclipse/kapua/app/console/module/authorization/shared/util/GwtKapuaAuthorizationModelConverter.java index 8c9ae82ec59..11b96b6493e 100644 --- a/console/module/authorization/src/main/java/org/eclipse/kapua/app/console/module/authorization/shared/util/GwtKapuaAuthorizationModelConverter.java +++ b/console/module/authorization/src/main/java/org/eclipse/kapua/app/console/module/authorization/shared/util/GwtKapuaAuthorizationModelConverter.java @@ -48,7 +48,6 @@ import org.eclipse.kapua.service.authorization.group.GroupAttributes; import org.eclipse.kapua.service.authorization.group.GroupQuery; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.role.Role; import org.eclipse.kapua.service.authorization.role.RoleAttributes; import org.eclipse.kapua.service.authorization.role.RoleCreator; @@ -283,11 +282,8 @@ public static AccessInfoCreator convertAccessInfoCreator(GwtAccessInfoCreator gw * @since 1.0.0 */ public static Permission convertPermission(GwtPermission gwtPermission) throws KapuaException { - // Get Services - KapuaLocator locator = KapuaLocator.getInstance(); - PermissionFactory permissionFactory = locator.getFactory(PermissionFactory.class); // Return converted - return permissionFactory.newPermission(gwtPermission.getDomain(), + return new Permission(gwtPermission.getDomain(), convertAction(gwtPermission.getActionEnum()), GwtKapuaCommonsModelConverter.convertKapuaId(gwtPermission.getTargetScopeId()), GwtKapuaCommonsModelConverter.convertKapuaId(gwtPermission.getGroupId()), diff --git a/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceConnectionServiceImpl.java b/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceConnectionServiceImpl.java index 6394013a2c6..f152b59d842 100644 --- a/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceConnectionServiceImpl.java +++ b/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceConnectionServiceImpl.java @@ -37,7 +37,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaListResult; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.registry.connection.DeviceConnection; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionQuery; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionService; @@ -64,7 +64,6 @@ public class GwtDeviceConnectionServiceImpl extends KapuaRemoteServiceServlet im private static final DeviceConnectionService DEVICE_CONNECTION_SERVICE = LOCATOR.getService(DeviceConnectionService.class); private static final AuthorizationService AUTHORIZATION_SERVICE = LOCATOR.getService(AuthorizationService.class); - private static final PermissionFactory PERMISSION_FACTORY = LOCATOR.getFactory(PermissionFactory.class); private static final UserService USER_SERVICE = LOCATOR.getService(UserService.class); private static final String CONNECTION_INFO = "connectionInfo"; @@ -192,7 +191,7 @@ public User call() throws Exception { deviceConnectionPropertiesPairs .add(new GwtGroupedNVPair(CONNECTION_USER_COUPLING_MODE_INFO, "connectionUserCouplingMode", gwtConnectionUserCouplingMode != null ? gwtConnectionUserCouplingMode.getLabel() : null)); - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.USER, Actions.read, scopeId))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.USER, Actions.read, scopeId))) { deviceConnectionPropertiesPairs.add(new GwtGroupedNVPair(CONNECTION_USER_COUPLING_MODE_INFO, "connectionReservedUser", reservedUser != null ? reservedUser.getName() : null)); deviceConnectionPropertiesPairs.add(new GwtGroupedNVPair(CONNECTION_USER_COUPLING_MODE_INFO, "allowUserChange", deviceConnection.getAllowUserChange())); } diff --git a/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceServiceImpl.java b/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceServiceImpl.java index dd565bd8c94..9b94b215435 100644 --- a/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceServiceImpl.java +++ b/console/module/device/src/main/java/org/eclipse/kapua/app/console/module/device/server/GwtDeviceServiceImpl.java @@ -50,7 +50,7 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.group.Group; import org.eclipse.kapua.service.authorization.group.GroupService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.registry.Device; import org.eclipse.kapua.service.device.registry.DeviceAttributes; import org.eclipse.kapua.service.device.registry.DeviceCreator; @@ -86,7 +86,6 @@ public class GwtDeviceServiceImpl extends KapuaRemoteServiceServlet implements G private static final KapuaLocator LOCATOR = KapuaLocator.getInstance(); private static final AuthorizationService AUTHORIZATION_SERVICE = LOCATOR.getService(AuthorizationService.class); - private static final PermissionFactory PERMISSION_FACTORY = LOCATOR.getFactory(PermissionFactory.class); private boolean isSameId; @@ -179,7 +178,7 @@ public User call() throws Exception { pairs.add(new GwtGroupedNVPair(CONN_INFO, "connConnectionStatus", deviceConnection.getStatus().toString())); pairs.add(new GwtGroupedNVPair(CONN_INFO, "connClientId", device.getClientId())); pairs.add(new GwtGroupedNVPair(CONN_INFO, "connUserName", lastConnectedUser != null ? lastConnectedUser.getName() : null)); - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.USER, Actions.read, scopeId))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.USER, Actions.read, scopeId))) { pairs.add(new GwtGroupedNVPair(CONN_INFO, "connReservedUserId", reservedUser != null ? reservedUser.getName() : null)); } pairs.add(new GwtGroupedNVPair(CONN_INFO, "connUserCouplingMode", GwtConnectionUserCouplingMode.valueOf(deviceConnection.getUserCouplingMode().name()).getLabel())); @@ -193,7 +192,7 @@ public User call() throws Exception { pairs.add(new GwtGroupedNVPair(CONN_INFO, "connConnectionStatus", DeviceConnectionStatus.DISCONNECTED.toString())); pairs.add(new GwtGroupedNVPair(CONN_INFO, "connClientId", null)); pairs.add(new GwtGroupedNVPair(CONN_INFO, "connUserName", null)); - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.USER, Actions.read, scopeId))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.USER, Actions.read, scopeId))) { pairs.add(new GwtGroupedNVPair(CONN_INFO, "connReservedUserId", null)); } pairs.add(new GwtGroupedNVPair(CONN_INFO, "connUserCouplingMode", null)); @@ -207,7 +206,7 @@ public User call() throws Exception { pairs.add(new GwtGroupedNVPair(DEV_INFO, "devClientId", device.getClientId())); pairs.add(new GwtGroupedNVPair(DEV_INFO, "devDisplayName", device.getDisplayName())); - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.GROUP, Actions.read, device.getScopeId()))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.GROUP, Actions.read, device.getScopeId()))) { if (device.getGroupId() != null) { Group group = groupService.find(scopeId, device.getGroupId()); @@ -219,7 +218,7 @@ public User call() throws Exception { } } - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.DEVICE_EVENT, Actions.read, device.getScopeId()))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.DEVICE_EVENT, Actions.read, device.getScopeId()))) { if (device.getLastEventId() != null) { DeviceEvent lastEvent = deviceEventService.find(scopeId, device.getLastEventId()); @@ -262,7 +261,7 @@ public User call() throws Exception { pairs.add(new GwtGroupedNVPair("devJava", "devJvmVersion", device.getJvmVersion())); // GPS infos retrieval - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.DEVICE_EVENT, Actions.read, device.getScopeId()))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.DEVICE_EVENT, Actions.read, device.getScopeId()))) { DeviceEventQuery query = new DeviceEventQuery(device.getScopeId()); query.setLimit(1); query.setSortCriteria(query.fieldSortCriteria(DeviceEventAttributes.RECEIVED_ON, SortOrder.DESCENDING)); diff --git a/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/client/dialog/UserDeleteDialog.java b/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/client/dialog/UserDeleteDialog.java index baa7910a2af..28232300e2e 100644 --- a/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/client/dialog/UserDeleteDialog.java +++ b/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/client/dialog/UserDeleteDialog.java @@ -16,18 +16,17 @@ import org.eclipse.kapua.app.console.module.api.client.util.DialogUtils; import org.eclipse.kapua.app.console.module.user.client.messages.ConsoleUserMessages; import org.eclipse.kapua.app.console.module.user.shared.model.GwtUser; +import org.eclipse.kapua.app.console.module.user.shared.service.GwtUserService; +import org.eclipse.kapua.app.console.module.user.shared.service.GwtUserServiceAsync; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; -import org.eclipse.kapua.app.console.module.user.shared.service.GwtUserService; -import org.eclipse.kapua.app.console.module.user.shared.service.GwtUserServiceAsync; public class UserDeleteDialog extends EntityDeleteDialog { private static final ConsoleUserMessages MSGS = GWT.create(ConsoleUserMessages.class); private static final GwtUserServiceAsync GWT_USER_SERVICE = GWT.create(GwtUserService.class); - private GwtUser gwtUser; public UserDeleteDialog(GwtUser gwtUser) { diff --git a/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/server/GwtUserServiceImpl.java b/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/server/GwtUserServiceImpl.java index c39fa87c311..48c17d9725d 100644 --- a/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/server/GwtUserServiceImpl.java +++ b/console/module/user/src/main/java/org/eclipse/kapua/app/console/module/user/server/GwtUserServiceImpl.java @@ -42,7 +42,7 @@ import org.eclipse.kapua.service.authentication.credential.CredentialService; import org.eclipse.kapua.service.authentication.credential.CredentialStatus; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.authorization.role.RoleService; import org.eclipse.kapua.service.device.registry.Device; import org.eclipse.kapua.service.device.registry.DeviceListResult; @@ -80,7 +80,6 @@ public class GwtUserServiceImpl extends KapuaRemoteServiceServlet implements Gwt private static final DeviceConnectionService DEVICE_CONNECTION_SERVICE = LOCATOR.getService(DeviceConnectionService.class); private static final AuthorizationService AUTHORIZATION_SERVICE = LOCATOR.getService(AuthorizationService.class); - private static final PermissionFactory PERMISSION_FACTORY = LOCATOR.getFactory(PermissionFactory.class); private static final DeviceRegistryService DEVICE_SERVICE = LOCATOR.getService(DeviceRegistryService.class); private static final String USER_INFO = "userInfo"; @@ -290,7 +289,7 @@ public UserListResult call() throws Exception { } DeviceConnection deviceConnection = null; - if (deviceListQuery(scopeId) != null && AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.DEVICE_CONNECTION, Actions.read, scopeId))) { + if (deviceListQuery(scopeId) != null && AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.DEVICE_CONNECTION, Actions.read, scopeId))) { for (Device device : deviceListQuery(scopeId).getItems()) { if (device.getConnectionId() != null) { deviceConnection = DEVICE_CONNECTION_SERVICE.find(scopeId, device.getConnectionId()); @@ -400,7 +399,7 @@ public UserListResult call() throws Exception { */ private DeviceListResult deviceListQuery(KapuaId scopeId) throws KapuaException { DeviceListResult devicesList = null; - if (AUTHORIZATION_SERVICE.isPermitted(PERMISSION_FACTORY.newPermission(Domains.DEVICE, Actions.read, scopeId))) { + if (AUTHORIZATION_SERVICE.isPermitted(new Permission(Domains.DEVICE, Actions.read, scopeId))) { DeviceQuery deviceQuery = new DeviceQuery(scopeId); devicesList = DEVICE_SERVICE.query(deviceQuery); } diff --git a/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/jbatch/JobEngineServiceJbatch.java b/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/jbatch/JobEngineServiceJbatch.java index b7a01c71f70..b1130cac917 100644 --- a/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/jbatch/JobEngineServiceJbatch.java +++ b/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/jbatch/JobEngineServiceJbatch.java @@ -42,16 +42,14 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.job.Job; import org.eclipse.kapua.service.job.JobService; import org.eclipse.kapua.service.job.execution.JobExecution; import org.eclipse.kapua.service.job.execution.JobExecutionService; import org.eclipse.kapua.service.job.step.JobStepAttributes; -import org.eclipse.kapua.service.job.step.JobStepFactory; import org.eclipse.kapua.service.job.step.JobStepService; import org.eclipse.kapua.service.job.targets.JobTargetAttributes; -import org.eclipse.kapua.service.job.targets.JobTargetFactory; import org.eclipse.kapua.service.job.targets.JobTargetService; @Singleton @@ -60,20 +58,14 @@ public class JobEngineServiceJbatch implements JobEngineService { @Inject private AuthorizationService authorizationService; @Inject - private PermissionFactory permissionFactory; - @Inject private JobService jobService; @Inject private JobExecutionService jobExecutionService; @Inject private JobStepService jobStepService; @Inject - private JobStepFactory jobStepFactory; - @Inject private JobTargetService jobTargetService; @Inject - private JobTargetFactory jobTargetFactory; - @Inject private JbatchDriver jbatchDriver; private static final String JOB_EXECUTION_ID = "jobExecutionId"; @@ -89,7 +81,7 @@ public void startJob(KapuaId scopeId, KapuaId jobId, JobStartOptions jobStartOpt ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); ArgumentValidator.notNull(jobStartOptions, "jobStartOptions"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.execute, scopeId)); // Check Job Existence Job job = jobService.find(scopeId, jobId); if (job == null) { @@ -134,7 +126,7 @@ public boolean isRunning(KapuaId scopeId, KapuaId jobId) throws KapuaException { ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); return internalIsRunning(scopeId, jobId); } @@ -144,7 +136,7 @@ public Map isRunning(KapuaId scopeId, Set jobIds) thr // Argument Validation ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); Map isRunningMap = new HashMap<>(); jobIds.forEach(jobId -> { @@ -165,7 +157,7 @@ public void stopJob(KapuaId scopeId, KapuaId jobId) throws KapuaException { ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.execute, scopeId)); // Check existence Job job = jobService.find(scopeId, jobId); if (job == null) { @@ -190,7 +182,7 @@ public void stopJobExecution(KapuaId scopeId, KapuaId jobId, KapuaId jobExecutio ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); ArgumentValidator.notNull(jobExecutionId, JOB_EXECUTION_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.execute, scopeId)); // Check existence Job job = jobService.find(scopeId, jobId); if (job == null) { @@ -221,7 +213,7 @@ public void resumeJobExecution(KapuaId scopeId, KapuaId jobId, KapuaId jobExecut ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); ArgumentValidator.notNull(jobExecutionId, JOB_EXECUTION_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.execute, scopeId)); // Check existence Job job = jobService.find(scopeId, jobId); if (job == null) { @@ -251,7 +243,7 @@ public void cleanJobData(KapuaId scopeId, KapuaId jobId) throws KapuaException { ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, null)); // Check existence Job job = jobService.find(scopeId, jobId); if (job == null) { diff --git a/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/JobEngineQueueJbatchModule.java b/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/JobEngineQueueJbatchModule.java index b66193d480d..eb1bdfdb9d7 100644 --- a/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/JobEngineQueueJbatchModule.java +++ b/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/JobEngineQueueJbatchModule.java @@ -12,7 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.job.engine.queue.jbatch; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; @@ -22,11 +23,11 @@ import org.eclipse.kapua.job.engine.queue.QueuedJobExecutionRepository; import org.eclipse.kapua.job.engine.queue.QueuedJobExecutionService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; -import javax.inject.Singleton; +import com.google.inject.Provides; public class JobEngineQueueJbatchModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(QueuedJobExecutionFactory.class).to(QueuedJobExecutionFactoryImpl.class); @@ -37,12 +38,10 @@ protected void configureModule() { @Singleton QueuedJobExecutionService queuedJobExecutionService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, QueuedJobExecutionRepository repository, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new QueuedJobExecutionServiceImpl( authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-job-engine"), repository); } diff --git a/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/QueuedJobExecutionServiceImpl.java b/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/QueuedJobExecutionServiceImpl.java index dd90911d46d..2721de8a9be 100644 --- a/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/QueuedJobExecutionServiceImpl.java +++ b/job-engine/jbatch/src/main/java/org/eclipse/kapua/job/engine/queue/jbatch/QueuedJobExecutionServiceImpl.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.job.engine.queue.jbatch; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; @@ -24,11 +26,9 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Singleton; - /** * {@link QueuedJobExecutionService} implementation */ @@ -36,17 +36,14 @@ public class QueuedJobExecutionServiceImpl implements QueuedJobExecutionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final QueuedJobExecutionRepository repository; public QueuedJobExecutionServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, QueuedJobExecutionRepository repository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.repository = repository; } @@ -57,7 +54,7 @@ public QueuedJobExecution create(QueuedJobExecutionCreator creator) throws Kapua ArgumentValidator.notNull(creator, "queuedJobExecutionCreator"); ArgumentValidator.notNull(creator.getScopeId(), "queuedJobExecutionCreator.scopeId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); QueuedJobExecution queuedJobExecutionImpl = new QueuedJobExecutionImpl(creator.getScopeId()); queuedJobExecutionImpl.setJobId(creator.getJobId()); @@ -74,7 +71,7 @@ public QueuedJobExecution update(QueuedJobExecution queuedJobExecution) throws K ArgumentValidator.notNull(queuedJobExecution, "queuedJobExecution"); ArgumentValidator.notNull(queuedJobExecution.getScopeId(), "queuedJobExecution.scopeId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); return txManager.execute(tx -> repository.update(tx, queuedJobExecution)); } @@ -85,7 +82,7 @@ public QueuedJobExecution find(KapuaId scopeId, KapuaId queuedJobExecutionId) th ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(queuedJobExecutionId, "queuedJobExecutionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); // Do find return txManager.execute(tx -> repository.find(tx, scopeId, queuedJobExecutionId)) .orElse(null); @@ -96,7 +93,7 @@ public QueuedJobExecutionListResult query(KapuaQuery query) throws KapuaExceptio // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.query(tx, query)); } @@ -106,7 +103,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.count(tx, query)); } @@ -117,7 +114,7 @@ public void delete(KapuaId scopeId, KapuaId queuedJobExecutionId) throws KapuaEx ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(queuedJobExecutionId, "queuedJobExecutionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, scopeId)); // Do delete txManager.execute(tx -> repository.delete(tx, scopeId, queuedJobExecutionId)); } diff --git a/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/EventStoreServiceImplTest.java b/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/EventStoreServiceImplTest.java index 5ca301f0bb1..f2b6a4f64dc 100644 --- a/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/EventStoreServiceImplTest.java +++ b/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/EventStoreServiceImplTest.java @@ -20,7 +20,6 @@ import org.eclipse.kapua.commons.service.event.store.internal.EventStoreServiceImpl; import org.eclipse.kapua.qa.markers.junit.JUnitTests; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.storage.TxManager; import org.junit.Assert; import org.junit.Test; @@ -35,7 +34,6 @@ public class EventStoreServiceImplTest { public void createTest() { EventStoreServiceImpl eventStoreServiceImpl = new EventStoreServiceImpl( Mockito.mock(AuthorizationService.class), - Mockito.mock(PermissionFactory.class), Mockito.mock(TxManager.class), Mockito.mock(EventStoreRecordRepository.class)); EventStoreRecordCreator[] creator = { null, new EventStoreRecordCreator(new KapuaEid(BigInteger.ONE)) }; diff --git a/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/PermissionFactoryImplTest.java b/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/PermissionFactoryImplTest.java deleted file mode 100644 index a682660611a..00000000000 --- a/qa/integration/src/test/java/org/eclipse/kapua/integration/misc/PermissionFactoryImplTest.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2021, 2022 Eurotech and/or its affiliates and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Eurotech - initial API and implementation - *******************************************************************************/ -package org.eclipse.kapua.integration.misc; - -import org.eclipse.kapua.qa.markers.junit.JUnitTests; -import org.eclipse.kapua.service.authorization.permission.shiro.PermissionFactoryImpl; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(JUnitTests.class) -public class PermissionFactoryImplTest { - - @Test - public void newPermissionTest() { - PermissionFactoryImpl permissionFactoryImpl = new PermissionFactoryImpl(); - System.out.println(permissionFactoryImpl.newPermission((String) null, null, null, null, true)); - } -} diff --git a/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountModule.java b/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountModule.java index db3cc3f009f..9ea36bc99cc 100644 --- a/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountModule.java +++ b/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountModule.java @@ -46,7 +46,6 @@ import org.eclipse.kapua.service.account.AccountService; import org.eclipse.kapua.service.account.internal.setting.KapuaAccountSetting; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import com.google.inject.Module; import com.google.inject.Provides; @@ -83,7 +82,6 @@ AccountRelativeFinder accountRelativeFinder( @ProvidesIntoSet ServiceModule accountServiceModule(AccountService accountService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, KapuaJpaTxManagerFactory txManagerFactory, EventStoreRecordRepository eventStoreRecordRepository, ServiceEventBus serviceEventBus, @@ -96,7 +94,6 @@ ServiceModule accountServiceModule(AccountService accountService, new ServiceEventHouseKeeperFactoryImpl( new EventStoreServiceImpl( authorizationService, - permissionFactory, txManagerFactory.create("kapua-account"), eventStoreRecordRepository ), @@ -110,7 +107,6 @@ ServiceModule accountServiceModule(AccountService accountService, @Provides @Singleton AccountService accountService(AccountRepository accountRepository, - PermissionFactory permissionFactory, AuthorizationService authorizationService, @Named("AccountServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, EventStorer eventStorer, @@ -119,7 +115,6 @@ AccountService accountService(AccountRepository accountRepository, return new AccountServiceImpl( jpaTxManagerFactory.create("kapua-account"), accountRepository, - permissionFactory, authorizationService, serviceConfigurationManager, eventStorer, diff --git a/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountServiceImpl.java b/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountServiceImpl.java index 9dc097f4d5b..29eab6308c4 100644 --- a/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountServiceImpl.java +++ b/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountServiceImpl.java @@ -49,7 +49,7 @@ import org.eclipse.kapua.service.account.AccountUpdateRequest; import org.eclipse.kapua.service.account.CurrentAccountUpdateRequest; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxContext; import org.eclipse.kapua.storage.TxManager; @@ -73,8 +73,6 @@ public class AccountServiceImpl * * @param accountRepository * The {@link AccountRepository} instance - * @param permissionFactory - * The {@link PermissionFactory} instance * @param authorizationService * The {@link AuthorizationService} instance * @param serviceConfigurationManager @@ -86,12 +84,11 @@ public class AccountServiceImpl public AccountServiceImpl( TxManager txManager, AccountRepository accountRepository, - PermissionFactory permissionFactory, AuthorizationService authorizationService, ServiceConfigurationManager serviceConfigurationManager, EventStorer eventStorer, AccountMapper accountMapper) { - super(txManager, serviceConfigurationManager, Domains.ACCOUNT, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.ACCOUNT, authorizationService); this.accountRepository = accountRepository; this.eventStorer = eventStorer; this.accountMapper = accountMapper; @@ -109,7 +106,7 @@ public Account create(AccountCreator accountCreator) throws KapuaException { ArgumentValidator.match(accountCreator.getOrganizationEmail(), CommonsValidationRegex.EMAIL_REGEXP, "accountCreator.organizationEmail"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, Actions.write, accountCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, Actions.write, accountCreator.getScopeId())); return txManager.execute(tx -> { // Check entity limit @@ -194,7 +191,7 @@ private Account doUpdateCurrentAccount(CurrentAccountUpdateRequest request) thro ArgumentValidator.match(request.organization.getEmail(), CommonsValidationRegex.EMAIL_REGEXP, "account.organization.email"); final KapuaId accountId = KapuaSecurityUtils.getSession().getScopeId(); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, Actions.write, accountId)); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, Actions.write, accountId)); return txManager.execute(tx -> { // Check existence @@ -220,7 +217,7 @@ private Account doUpdateChildAccount(KapuaId accountId, AccountUpdateRequest req .orElseThrow(() -> new KapuaEntityNotFoundException(Account.TYPE, accountId)); // Editing child - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, Actions.write, account.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, Actions.write, account.getScopeId())); validateExpirationDate(tx, account, request); @@ -278,7 +275,7 @@ public void delete(KapuaId scopeId, KapuaId accountId) throws KapuaException { ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accountId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, Actions.delete, scopeId)); // Check if it has children if (!findChildAccountsTrusted(accountId).isEmpty()) { throw new KapuaException(KapuaRuntimeErrorCodes.SERVICE_OPERATION_NOT_SUPPORTED, null, "This account cannot be deleted. Delete its child first."); @@ -390,7 +387,7 @@ public AccountListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> accountRepository.query(tx, query)); @@ -401,7 +398,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> accountRepository.count(tx, query)); } @@ -428,10 +425,10 @@ private void checkAccountPermission(KapuaId scopeId, KapuaId accountId, Actions private void checkAccountPermission(KapuaId scopeId, KapuaId accountId, Actions action, boolean forwardable) throws KapuaException { if (KapuaSecurityUtils.getSession().getScopeId().equals(accountId)) { // I'm looking for myself, so let's check if I have the correct permission - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, action, accountId, null, forwardable)); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, action, accountId, null, forwardable)); } else { // I'm looking for another account, so I need to check the permission on the account scope - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCOUNT, action, scopeId, null, forwardable)); + authorizationService.checkPermission(new Permission(Domains.ACCOUNT, action, scopeId, null, forwardable)); } } } diff --git a/service/account/test/src/test/java/org/eclipse/kapua/service/account/test/AccountLocatorConfiguration.java b/service/account/test/src/test/java/org/eclipse/kapua/service/account/test/AccountLocatorConfiguration.java index a11d3e05ba4..2729be0b783 100644 --- a/service/account/test/src/test/java/org/eclipse/kapua/service/account/test/AccountLocatorConfiguration.java +++ b/service/account/test/src/test/java/org/eclipse/kapua/service/account/test/AccountLocatorConfiguration.java @@ -48,7 +48,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.mockito.Matchers; import org.mockito.Mockito; @@ -98,9 +97,6 @@ protected void configure() { bind(KapuaJpaRepositoryConfiguration.class).toInstance(new KapuaJpaRepositoryConfiguration()); bind(AuthorizationService.class).toInstance(mockedAuthorization); - // Inject mocked Permission Factory - final PermissionFactory mockPermissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(mockPermissionFactory); // Inject actual account related services // final AccountEntityManagerFactory entityManagerFactory = AccountEntityManagerFactory.getInstance(); // bind(AccountEntityManagerFactory.class).toInstance(entityManagerFactory); @@ -113,7 +109,6 @@ protected void configure() { bind(AccountService.class).toInstance(new AccountServiceImpl( new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-account"), new AccountImplJpaRepository(jpaRepoConfig), - mockPermissionFactory, mockedAuthorization, new ResourceLimitedServiceConfigurationManagerImpl( AccountService.class.getName(), diff --git a/service/authentication-app/src/main/java/org/eclipse/kapua/service/authentication/SpringBridge.java b/service/authentication-app/src/main/java/org/eclipse/kapua/service/authentication/SpringBridge.java index 589e5759062..c045e1b11d2 100644 --- a/service/authentication-app/src/main/java/org/eclipse/kapua/service/authentication/SpringBridge.java +++ b/service/authentication-app/src/main/java/org/eclipse/kapua/service/authentication/SpringBridge.java @@ -24,7 +24,6 @@ import org.eclipse.kapua.service.authentication.credential.handler.CredentialTypeHandler; import org.eclipse.kapua.service.authentication.setting.ServiceAuthenticationSetting; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.camel.application.MetricsCamel; import org.eclipse.kapua.service.client.protocol.ProtocolDescriptorProvider; import org.eclipse.kapua.service.device.authentication.api.DeviceConnectionCredentialAdapter; @@ -111,11 +110,6 @@ DeviceConnectionFactory deviceConnectionFactory() { return KapuaLocator.getInstance().getComponent(DeviceConnectionFactory.class); } - @Bean - PermissionFactory permissionFactory() { - return KapuaLocator.getInstance().getComponent(PermissionFactory.class); - } - @Bean DeviceConnectionService deviceConnectionService() { return KapuaLocator.getInstance().getComponent(DeviceConnectionService.class); diff --git a/service/authentication-app/src/main/resources/spring/applicationContext.xml b/service/authentication-app/src/main/resources/spring/applicationContext.xml index 222cf9f91e4..b42fd60d120 100644 --- a/service/authentication-app/src/main/resources/spring/applicationContext.xml +++ b/service/authentication-app/src/main/resources/spring/applicationContext.xml @@ -60,7 +60,6 @@ - @@ -70,7 +69,6 @@ - diff --git a/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AdminAuthenticationLogic.java b/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AdminAuthenticationLogic.java index 6a7a3922bd3..63783fb0f0b 100644 --- a/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AdminAuthenticationLogic.java +++ b/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AdminAuthenticationLogic.java @@ -12,7 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service.authentication.authentication; -import com.codahale.metrics.Timer.Context; +import java.util.List; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.client.security.bean.AuthAcl; import org.eclipse.kapua.client.security.bean.AuthContext; @@ -20,14 +21,13 @@ import org.eclipse.kapua.commons.model.id.KapuaEid; import org.eclipse.kapua.commons.security.KapuaSecurityUtils; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.connection.DeviceConnection; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionFactory; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionService; import org.eclipse.kapua.service.device.registry.connection.option.DeviceConnectionOptionFactory; import org.eclipse.kapua.service.device.registry.connection.option.DeviceConnectionOptionService; -import java.util.List; +import com.codahale.metrics.Timer.Context; /** * Admin profile authentication logic implementation @@ -43,9 +43,8 @@ public AdminAuthenticationLogic( DeviceConnectionOptionService deviceConnectionOptionService, AuthorizationService authorizationService, DeviceConnectionFactory deviceConnectionFactory, - PermissionFactory permissionFactory, DeviceConnectionService deviceConnectionService) { - super(aclCreator, authenticationMetric, deviceConnectionOptionFactory, deviceConnectionOptionService, authorizationService, deviceConnectionFactory, permissionFactory, deviceConnectionService); + super(aclCreator, authenticationMetric, deviceConnectionOptionFactory, deviceConnectionOptionService, authorizationService, deviceConnectionFactory, deviceConnectionService); } @Override diff --git a/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AuthenticationLogic.java b/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AuthenticationLogic.java index 1b58098af18..69536c5eeeb 100644 --- a/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AuthenticationLogic.java +++ b/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/AuthenticationLogic.java @@ -28,7 +28,6 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.ConnectionUserCouplingMode; import org.eclipse.kapua.service.device.registry.connection.DeviceConnection; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionCreator; @@ -60,7 +59,6 @@ public abstract class AuthenticationLogic { protected final DeviceConnectionOptionService deviceConnectionOptionService; protected final AuthorizationService authorizationService; protected final DeviceConnectionFactory deviceConnectionFactory; - protected final PermissionFactory permissionFactory; protected final DeviceConnectionService deviceConnectionService; private static final String USER_NOT_AUTHORIZED = "User not authorized!"; @@ -72,7 +70,6 @@ protected AuthenticationLogic( DeviceConnectionOptionService deviceConnectionOptionService, AuthorizationService authorizationService, DeviceConnectionFactory deviceConnectionFactory, - PermissionFactory permissionFactory, DeviceConnectionService deviceConnectionService) { this.aclCreator = aclCreator; this.authenticationMetric = authenticationMetric; @@ -80,7 +77,6 @@ protected AuthenticationLogic( this.deviceConnectionOptionService = deviceConnectionOptionService; this.authorizationService = authorizationService; this.deviceConnectionFactory = deviceConnectionFactory; - this.permissionFactory = permissionFactory; this.deviceConnectionService = deviceConnectionService; } diff --git a/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/UserAuthenticationLogic.java b/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/UserAuthenticationLogic.java index ccb638962fb..c9cf462ac0a 100644 --- a/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/UserAuthenticationLogic.java +++ b/service/authentication/src/main/java/org/eclipse/kapua/service/authentication/authentication/UserAuthenticationLogic.java @@ -12,7 +12,9 @@ *******************************************************************************/ package org.eclipse.kapua.service.authentication.authentication; -import com.codahale.metrics.Timer.Context; +import java.util.ArrayList; +import java.util.List; + import org.apache.shiro.ShiroException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.KapuaIllegalAccessException; @@ -26,7 +28,6 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.connection.DeviceConnection; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionFactory; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionService; @@ -34,8 +35,7 @@ import org.eclipse.kapua.service.device.registry.connection.option.DeviceConnectionOptionFactory; import org.eclipse.kapua.service.device.registry.connection.option.DeviceConnectionOptionService; -import java.util.ArrayList; -import java.util.List; +import com.codahale.metrics.Timer.Context; /** * User profile authentication logic implementation @@ -51,9 +51,8 @@ public UserAuthenticationLogic( DeviceConnectionOptionService deviceConnectionOptionService, AuthorizationService authorizationService, DeviceConnectionFactory deviceConnectionFactory, - PermissionFactory permissionFactory, DeviceConnectionService deviceConnectionService) { - super(aclCreator, authenticationMetric, deviceConnectionOptionFactory, deviceConnectionOptionService, authorizationService, deviceConnectionFactory, permissionFactory, deviceConnectionService); + super(aclCreator, authenticationMetric, deviceConnectionOptionFactory, deviceConnectionOptionService, authorizationService, deviceConnectionFactory, deviceConnectionService); } @Override @@ -123,15 +122,15 @@ protected List buildAuthorizationMap(UserPermissions userPermissions, A protected UserPermissions updatePermissions(AuthContext authContext) throws KapuaException { List permissions = new ArrayList<>(); KapuaId scopeId = KapuaEid.parseCompactId(authContext.getScopeId()); - permissions.add(permissionFactory.newPermission(Domains.BROKER, Actions.connect, scopeId)); - permissions.add(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); - permissions.add(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); - permissions.add(permissionFactory.newPermission(Domains.DATASTORE, Actions.read, scopeId)); - permissions.add(permissionFactory.newPermission(Domains.DATASTORE, Actions.write, scopeId)); + permissions.add(new Permission(Domains.BROKER, Actions.connect, scopeId)); + permissions.add(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + permissions.add(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + permissions.add(new Permission(Domains.DATASTORE, Actions.read, scopeId)); + permissions.add(new Permission(Domains.DATASTORE, Actions.write, scopeId)); UserPermissions userPermissions = new UserPermissions(authorizationService.isPermitted(permissions)); if (!userPermissions.isBrokerConnect()) { - throw new KapuaIllegalAccessException(permissionFactory.newPermission(Domains.BROKER, Actions.connect, scopeId).toString()); + throw new KapuaIllegalAccessException(new Permission(Domains.BROKER, Actions.connect, scopeId).toString()); } return userPermissions; } diff --git a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ChannelInfoRegistryServiceImpl.java b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ChannelInfoRegistryServiceImpl.java index 51e8205f1ee..d051db8fd3c 100644 --- a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ChannelInfoRegistryServiceImpl.java +++ b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ChannelInfoRegistryServiceImpl.java @@ -30,7 +30,6 @@ import org.eclipse.kapua.service.account.AccountService; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.datastore.ChannelInfoRegistryService; import org.eclipse.kapua.service.datastore.internal.setting.DatastoreSettings; import org.eclipse.kapua.service.datastore.internal.setting.DatastoreSettingsKey; @@ -64,9 +63,7 @@ public class ChannelInfoRegistryServiceImpl implements ChannelInfoRegistryServic private static final Logger LOG = LoggerFactory.getLogger(ChannelInfoRegistryServiceImpl.class); private final DatastorePredicateFactory datastorePredicateFactory; protected final Integer maxResultWindowValue; - private final AccountService accountService; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final ChannelInfoRegistryFacade channelInfoRegistryFacade; private final MessageRepository messageRepository; private final DatastoreSettings datastoreSettings; @@ -83,17 +80,14 @@ public ChannelInfoRegistryServiceImpl( DatastorePredicateFactory datastorePredicateFactory, AccountService accountService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, MessageRepository messageStoreService, ChannelInfoRegistryFacade channelInfoRegistryFacade, DatastoreSettings datastoreSettings) { this.datastorePredicateFactory = datastorePredicateFactory; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.messageRepository = messageStoreService; this.channelInfoRegistryFacade = channelInfoRegistryFacade; this.datastoreSettings = datastoreSettings; - this.accountService = accountService; this.maxResultWindowValue = datastoreSettings.getInt(DatastoreSettingsKey.MAX_RESULT_WINDOW_VALUE); } @@ -211,7 +205,7 @@ public void delete(ChannelInfoQuery query) private void checkDataAccess(KapuaId scopeId, Actions action) throws KapuaException { - Permission permission = permissionFactory.newPermission(Domains.DATASTORE, action, scopeId); + Permission permission = new Permission(Domains.DATASTORE, action, scopeId); authorizationService.checkPermission(permission); } diff --git a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ClientInfoRegistryServiceImpl.java b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ClientInfoRegistryServiceImpl.java index 1b8ce0e0729..dfb1bf92243 100644 --- a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ClientInfoRegistryServiceImpl.java +++ b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/ClientInfoRegistryServiceImpl.java @@ -27,10 +27,8 @@ import org.eclipse.kapua.commons.util.ArgumentValidator; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; -import org.eclipse.kapua.service.account.AccountService; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.datastore.ClientInfoRegistryService; import org.eclipse.kapua.service.datastore.internal.setting.DatastoreSettings; import org.eclipse.kapua.service.datastore.internal.setting.DatastoreSettingsKey; @@ -65,9 +63,7 @@ public class ClientInfoRegistryServiceImpl implements ClientInfoRegistryService private static final Logger LOG = LoggerFactory.getLogger(ClientInfoRegistryServiceImpl.class); protected final Integer maxResultWindowValue; private final StorablePredicateFactory storablePredicateFactory; - private final AccountService accountService; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final ClientInfoRegistryFacade clientInfoRegistryFacade; private final DatastorePredicateFactory datastorePredicateFactory; private final MessageRepository messageRepository; @@ -82,17 +78,13 @@ public class ClientInfoRegistryServiceImpl implements ClientInfoRegistryService @Inject public ClientInfoRegistryServiceImpl( StorablePredicateFactory storablePredicateFactory, - AccountService accountService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DatastorePredicateFactory datastorePredicateFactory, ClientInfoRegistryFacade clientInfoRegistryFacade, MessageRepository messageRepository, DatastoreSettings datastoreSettings) { this.storablePredicateFactory = storablePredicateFactory; - this.accountService = accountService; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.datastorePredicateFactory = datastorePredicateFactory; this.clientInfoRegistryFacade = clientInfoRegistryFacade; this.messageRepository = messageRepository; @@ -213,7 +205,7 @@ public void delete(KapuaId scopeId, StorableId id) private void checkAccess(KapuaId scopeId, Actions action) throws KapuaException { - Permission permission = permissionFactory.newPermission(Domains.DATASTORE, action, scopeId); + Permission permission = new Permission(Domains.DATASTORE, action, scopeId); authorizationService.checkPermission(permission); } diff --git a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/DatastoreModule.java b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/DatastoreModule.java index 90a9b7a0300..5030015e1ac 100644 --- a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/DatastoreModule.java +++ b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/DatastoreModule.java @@ -33,7 +33,6 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.account.AccountService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.datastore.ChannelInfoFactory; import org.eclipse.kapua.service.datastore.ChannelInfoRegistryService; import org.eclipse.kapua.service.datastore.ClientInfoFactory; @@ -115,7 +114,6 @@ ConfigurationProvider configurationProvider( @Provides @Singleton MessageStoreService messageStoreService( - PermissionFactory permissionFactory, AuthorizationService authorizationService, @Named("MessageStoreServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, KapuaJpaTxManagerFactory jpaTxManagerFactory, @@ -124,7 +122,6 @@ MessageStoreService messageStoreService( DatastoreSettings datastoreSettings) { return new MessageStoreServiceImpl( jpaTxManagerFactory.create("kapua-datastore"), - permissionFactory, authorizationService, serviceConfigurationManager, messageStoreFacade, diff --git a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MessageStoreServiceImpl.java b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MessageStoreServiceImpl.java index 0f6c2293f88..8c1d6b3a50e 100644 --- a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MessageStoreServiceImpl.java +++ b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MessageStoreServiceImpl.java @@ -12,7 +12,12 @@ *******************************************************************************/ package org.eclipse.kapua.service.datastore.internal; -import com.codahale.metrics.Timer.Context; +import java.util.Optional; +import java.util.UUID; + +import javax.inject.Inject; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaErrorCodes; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.KapuaIllegalArgumentException; @@ -25,7 +30,6 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.datastore.MessageStoreService; import org.eclipse.kapua.service.datastore.internal.mediator.ConfigurationException; import org.eclipse.kapua.service.datastore.internal.mediator.DatastoreCommunicationException; @@ -43,10 +47,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Inject; -import javax.inject.Singleton; -import java.util.Optional; -import java.util.UUID; +import com.codahale.metrics.Timer.Context; /** * Message store service implementation. @@ -60,7 +61,6 @@ public class MessageStoreServiceImpl extends KapuaConfigurableServiceBase implem private MetricsDatastore metrics; protected AuthorizationService authorizationService; - protected PermissionFactory permissionFactory; protected final Integer maxEntriesOnDelete; protected final Integer maxResultWindowValue; @@ -69,15 +69,13 @@ public class MessageStoreServiceImpl extends KapuaConfigurableServiceBase implem @Inject public MessageStoreServiceImpl( TxManager txManager, - PermissionFactory permissionFactory, AuthorizationService authorizationService, ServiceConfigurationManager serviceConfigurationManager, MessageStoreFacade messageStoreFacade, MetricsDatastore metricsDatastore, DatastoreSettings datastoreSettings ) { - super(txManager, serviceConfigurationManager, Domains.DATASTORE, authorizationService, permissionFactory); - this.permissionFactory = permissionFactory; + super(txManager, serviceConfigurationManager, Domains.DATASTORE, authorizationService); this.authorizationService = authorizationService; this.metrics = metricsDatastore; this.messageStoreFacade = messageStoreFacade; @@ -185,7 +183,8 @@ public long count(MessageQuery query) } catch (Exception e) { logException(e); throw new DatastoreException(KapuaErrorCodes.INTERNAL_ERROR, - e.getCause() != null && (e.getCause() instanceof ClientException) ? e.getCause() : e, //in case where there is a ClientException I just want this as a cause and not the runtime exception + e.getCause() != null && (e.getCause() instanceof ClientException) ? e.getCause() : e, + //in case where there is a ClientException I just want this as a cause and not the runtime exception e.getMessage()); } } @@ -218,7 +217,7 @@ public void delete(MessageQuery query) protected void checkDataAccess(KapuaId scopeId, Actions action) throws KapuaException { - Permission permission = permissionFactory.newPermission(Domains.DATASTORE, action, scopeId); + Permission permission = new Permission(Domains.DATASTORE, action, scopeId); authorizationService.checkPermission(permission); } diff --git a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MetricInfoRegistryServiceImpl.java b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MetricInfoRegistryServiceImpl.java index 1aee55066f8..08f3ad92b58 100644 --- a/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MetricInfoRegistryServiceImpl.java +++ b/service/datastore/internal/src/main/java/org/eclipse/kapua/service/datastore/internal/MetricInfoRegistryServiceImpl.java @@ -29,7 +29,6 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.datastore.MetricInfoRegistryService; import org.eclipse.kapua.service.datastore.internal.setting.DatastoreSettings; import org.eclipse.kapua.service.datastore.internal.setting.DatastoreSettingsKey; @@ -67,7 +66,6 @@ public class MetricInfoRegistryServiceImpl implements MetricInfoRegistryService private final StorablePredicateFactory storablePredicateFactory; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final MetricInfoRegistryFacade metricInfoRegistryFacade; private final DatastorePredicateFactory datastorePredicateFactory; private final MessageRepository messageRepository; @@ -81,14 +79,12 @@ public class MetricInfoRegistryServiceImpl implements MetricInfoRegistryService public MetricInfoRegistryServiceImpl( StorablePredicateFactory storablePredicateFactory, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DatastorePredicateFactory datastorePredicateFactory, MetricInfoRegistryFacade metricInfoRegistryFacade, MessageRepository messageRepository, DatastoreSettings datastoreSettings) { this.storablePredicateFactory = storablePredicateFactory; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.datastorePredicateFactory = datastorePredicateFactory; this.metricInfoRegistryFacade = metricInfoRegistryFacade; this.messageRepository = messageRepository; @@ -211,7 +207,7 @@ public void delete(KapuaId scopeId, StorableId id) private void checkDataAccess(KapuaId scopeId, Actions action) throws KapuaException { - Permission permission = permissionFactory.newPermission(Domains.DATASTORE, action, scopeId); + Permission permission = new Permission(Domains.DATASTORE, action, scopeId); authorizationService.checkPermission(permission); } diff --git a/service/device/commons/src/main/java/org/eclipse/kapua/service/device/management/commons/AbstractDeviceManagementTransactionalServiceImpl.java b/service/device/commons/src/main/java/org/eclipse/kapua/service/device/management/commons/AbstractDeviceManagementTransactionalServiceImpl.java index d582073ae9d..265490f1c5a 100644 --- a/service/device/commons/src/main/java/org/eclipse/kapua/service/device/management/commons/AbstractDeviceManagementTransactionalServiceImpl.java +++ b/service/device/commons/src/main/java/org/eclipse/kapua/service/device/management/commons/AbstractDeviceManagementTransactionalServiceImpl.java @@ -25,7 +25,6 @@ import org.eclipse.kapua.commons.util.ThrowingRunnable; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.DeviceManagementService; import org.eclipse.kapua.service.device.management.exception.DeviceManagementResponseBadRequestException; import org.eclipse.kapua.service.device.management.exception.DeviceManagementResponseCodeException; @@ -55,7 +54,6 @@ public abstract class AbstractDeviceManagementTransactionalServiceImpl { protected final TxManager txManager; protected final AuthorizationService authorizationService; - protected final PermissionFactory permissionFactory; protected final DeviceEventService deviceEventService; protected final DeviceEventFactory deviceEventFactory; @@ -65,13 +63,11 @@ public abstract class AbstractDeviceManagementTransactionalServiceImpl { public AbstractDeviceManagementTransactionalServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService) { this.txManager = txManager; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.deviceEventService = deviceEventService; this.deviceEventFactory = deviceEventFactory; this.deviceRegistryService = deviceRegistryService; diff --git a/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceAssetManagementServiceImpl.java b/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceAssetManagementServiceImpl.java index 2b50eed84e8..84580c9c202 100644 --- a/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceAssetManagementServiceImpl.java +++ b/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceAssetManagementServiceImpl.java @@ -22,7 +22,7 @@ import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.asset.DeviceAssetFactory; import org.eclipse.kapua.service.device.management.asset.DeviceAssetManagementService; import org.eclipse.kapua.service.device.management.asset.DeviceAssets; @@ -63,14 +63,12 @@ public class DeviceAssetManagementServiceImpl extends AbstractDeviceManagementTr public DeviceAssetManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, DeviceAssetStoreService deviceAssetStoreService, DeviceAssetFactory deviceAssetFactory) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -86,7 +84,7 @@ public DeviceAssets get(KapuaId scopeId, KapuaId deviceId, DeviceAssets deviceAs ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(deviceAssets, DEVICE_ASSETS); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request AssetRequestChannel assetRequestChannel = new AssetRequestChannel(); assetRequestChannel.setAppName(DeviceAssetAppProperties.APP_NAME); @@ -151,7 +149,7 @@ public DeviceAssets read(KapuaId scopeId, KapuaId deviceId, DeviceAssets deviceA ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(deviceAssets, DEVICE_ASSETS); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request AssetRequestChannel assetRequestChannel = new AssetRequestChannel(); assetRequestChannel.setAppName(DeviceAssetAppProperties.APP_NAME); @@ -218,7 +216,7 @@ public DeviceAssets write(KapuaId scopeId, KapuaId deviceId, DeviceAssets device ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(deviceAssets, DEVICE_ASSETS); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request AssetRequestChannel assetRequestChannel = new AssetRequestChannel(); assetRequestChannel.setAppName(DeviceAssetAppProperties.APP_NAME); diff --git a/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceManagementAssetModule.java b/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceManagementAssetModule.java index f008d48bd73..af7cae01006 100644 --- a/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceManagementAssetModule.java +++ b/service/device/management/asset/internal/src/main/java/org/eclipse/kapua/service/device/management/asset/internal/DeviceManagementAssetModule.java @@ -17,7 +17,6 @@ import org.eclipse.kapua.commons.core.SimpleJaxbClassProvider; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.asset.DeviceAssetFactory; import org.eclipse.kapua.service.device.management.asset.DeviceAssetManagementService; import org.eclipse.kapua.service.device.management.asset.store.DeviceAssetStoreService; @@ -50,7 +49,6 @@ protected void configureModule() { @Provides @Singleton DeviceAssetManagementService deviceAssetManagementService(AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -60,7 +58,6 @@ DeviceAssetManagementService deviceAssetManagementService(AuthorizationService a return new DeviceAssetManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceBundleManagementServiceImpl.java b/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceBundleManagementServiceImpl.java index 7b8055747a8..7b145bb95a0 100644 --- a/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceBundleManagementServiceImpl.java +++ b/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceBundleManagementServiceImpl.java @@ -13,13 +13,17 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.bundle.internal; +import java.util.Date; + +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.bundle.DeviceBundleFactory; import org.eclipse.kapua.service.device.management.bundle.DeviceBundleManagementService; import org.eclipse.kapua.service.device.management.bundle.DeviceBundles; @@ -37,9 +41,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; -import java.util.Date; - /** * DeviceBundleManagementService implementation. * @@ -56,14 +57,12 @@ public class DeviceBundleManagementServiceImpl extends AbstractDeviceManagementT private final DeviceBundleFactory deviceBundleFactory; public DeviceBundleManagementServiceImpl(TxManager txManager, - AuthorizationService authorizationService, - PermissionFactory permissionFactory, - DeviceEventService deviceEventService, - DeviceEventFactory deviceEventFactory, - DeviceRegistryService deviceRegistryService, DeviceBundleFactory deviceBundleFactory) { + AuthorizationService authorizationService, + DeviceEventService deviceEventService, + DeviceEventFactory deviceEventFactory, + DeviceRegistryService deviceRegistryService, DeviceBundleFactory deviceBundleFactory) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -77,7 +76,7 @@ public DeviceBundles get(KapuaId scopeId, KapuaId deviceId, Long timeout) ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request BundleRequestChannel bundleRequestChannel = new BundleRequestChannel(); bundleRequestChannel.setAppName(DeviceBundleAppProperties.APP_NAME); @@ -124,7 +123,7 @@ public void start(KapuaId scopeId, KapuaId deviceId, String bundleId, Long timeo ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notEmptyOrNull(bundleId, "bundleId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); // Prepare the request BundleRequestChannel bundleRequestChannel = new BundleRequestChannel(); bundleRequestChannel.setAppName(DeviceBundleAppProperties.APP_NAME); @@ -172,7 +171,7 @@ public void stop(KapuaId scopeId, KapuaId deviceId, String bundleId, Long timeou ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notEmptyOrNull(bundleId, "bundleId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); // Prepare the request BundleRequestChannel bundleRequestChannel = new BundleRequestChannel(); bundleRequestChannel.setAppName(DeviceBundleAppProperties.APP_NAME); diff --git a/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceManagementBundleModule.java b/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceManagementBundleModule.java index 9afc230f641..ff8915a17ed 100644 --- a/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceManagementBundleModule.java +++ b/service/device/management/bundle/internal/src/main/java/org/eclipse/kapua/service/device/management/bundle/internal/DeviceManagementBundleModule.java @@ -12,8 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.bundle.internal; -import com.google.inject.Provides; -import com.google.inject.multibindings.ProvidesIntoSet; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.commons.model.domains.Domains; @@ -21,7 +21,6 @@ import org.eclipse.kapua.model.domain.Domain; import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.DeviceManagementService; import org.eclipse.kapua.service.device.management.bundle.DeviceBundleFactory; import org.eclipse.kapua.service.device.management.bundle.DeviceBundleManagementService; @@ -29,9 +28,11 @@ import org.eclipse.kapua.service.device.registry.event.DeviceEventFactory; import org.eclipse.kapua.service.device.registry.event.DeviceEventService; -import javax.inject.Singleton; +import com.google.inject.Provides; +import com.google.inject.multibindings.ProvidesIntoSet; public class DeviceManagementBundleModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(DeviceBundleFactory.class).to(DeviceBundleFactoryImpl.class); @@ -46,7 +47,6 @@ public Domain deviceManagementModule() { @Singleton DeviceBundleManagementService deviceBundleManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -55,7 +55,6 @@ DeviceBundleManagementService deviceBundleManagementService( return new DeviceBundleManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceCommandManagementServiceImpl.java b/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceCommandManagementServiceImpl.java index 68afc10124a..52df4ecb8a0 100644 --- a/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceCommandManagementServiceImpl.java +++ b/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceCommandManagementServiceImpl.java @@ -12,13 +12,17 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.command.internal; +import java.util.Date; + +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.command.DeviceCommandInput; import org.eclipse.kapua.service.device.management.command.DeviceCommandManagementService; import org.eclipse.kapua.service.device.management.command.DeviceCommandOutput; @@ -37,9 +41,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; -import java.util.Date; - /** * {@link DeviceCommandManagementService} implementation. * @@ -47,16 +48,15 @@ */ @Singleton public class DeviceCommandManagementServiceImpl extends AbstractDeviceManagementTransactionalServiceImpl implements DeviceCommandManagementService { + public DeviceCommandManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -73,7 +73,7 @@ public DeviceCommandOutput exec(KapuaId scopeId, KapuaId deviceId, DeviceCommand ArgumentValidator.notNull(commandInput, "commandInput"); ArgumentValidator.notNull(commandInput.getTimeout(), "commandInput.timeout"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); // Prepare the request CommandRequestChannel commandRequestChannel = new CommandRequestChannel(); commandRequestChannel.setAppName(CommandAppProperties.APP_NAME); @@ -112,7 +112,8 @@ public DeviceCommandOutput exec(KapuaId scopeId, KapuaId deviceId, DeviceCommand responseMessage = commandDeviceCallBuilder.send(); } catch (Exception e) { if (commandInput.getArguments() != null) { - LOG.error("Error while executing DeviceCommand {} with arguments {} for Device {}. Error: {}", commandInput.getCommand(), String.join(" ", commandInput.getArguments()), deviceId, e.getMessage(), e); + LOG.error("Error while executing DeviceCommand {} with arguments {} for Device {}. Error: {}", commandInput.getCommand(), String.join(" ", commandInput.getArguments()), deviceId, + e.getMessage(), e); } else { LOG.error("Error while executing DeviceCommand {} for Device {}. Error: {}", commandInput.getCommand(), deviceId, e.getMessage(), e); } diff --git a/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceManagementCommandModule.java b/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceManagementCommandModule.java index ab6d45fa9c0..2c29d988f4f 100644 --- a/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceManagementCommandModule.java +++ b/service/device/management/command/internal/src/main/java/org/eclipse/kapua/service/device/management/command/internal/DeviceManagementCommandModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.command.internal; -import com.google.inject.Provides; +import javax.inject.Inject; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.command.DeviceCommandFactory; import org.eclipse.kapua.service.device.management.command.DeviceCommandManagementService; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.device.registry.event.DeviceEventFactory; import org.eclipse.kapua.service.device.registry.event.DeviceEventService; -import javax.inject.Inject; +import com.google.inject.Provides; public class DeviceManagementCommandModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(DeviceCommandFactory.class).to(DeviceCommandFactoryImpl.class); @@ -35,7 +36,6 @@ protected void configureModule() { @Inject DeviceCommandManagementService deviceCommandManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -43,7 +43,6 @@ DeviceCommandManagementService deviceCommandManagementService( return new DeviceCommandManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService diff --git a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceConfigurationManagementServiceImpl.java b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceConfigurationManagementServiceImpl.java index 88a5370c4b4..2c41ab861b4 100644 --- a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceConfigurationManagementServiceImpl.java +++ b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceConfigurationManagementServiceImpl.java @@ -25,7 +25,7 @@ import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.commons.AbstractDeviceManagementTransactionalServiceImpl; import org.eclipse.kapua.service.device.management.commons.call.DeviceCallBuilder; import org.eclipse.kapua.service.device.management.configuration.DeviceComponentConfiguration; @@ -69,7 +69,6 @@ public class DeviceConfigurationManagementServiceImpl extends AbstractDeviceMana public DeviceConfigurationManagementServiceImpl(TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -78,7 +77,6 @@ public DeviceConfigurationManagementServiceImpl(TxManager txManager, XmlUtil xmlUtil) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService @@ -95,7 +93,7 @@ public DeviceConfiguration get(KapuaId scopeId, KapuaId deviceId, String configu ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request ConfigurationRequestChannel configurationRequestChannel = new ConfigurationRequestChannel(); configurationRequestChannel.setAppName(DeviceConfigurationAppProperties.APP_NAME); @@ -175,7 +173,7 @@ public void put(KapuaId scopeId, KapuaId deviceId, DeviceComponentConfiguration ArgumentValidator.notNull(deviceComponentConfiguration, "componentConfiguration"); ArgumentValidator.notEmptyOrNull(deviceComponentConfiguration.getId(), "componentConfiguration.componentId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request ConfigurationRequestChannel configurationRequestChannel = new ConfigurationRequestChannel(); configurationRequestChannel.setAppName(DeviceConfigurationAppProperties.APP_NAME); @@ -244,7 +242,7 @@ public void put(KapuaId scopeId, KapuaId deviceId, DeviceConfiguration deviceCon ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(deviceConfiguration, "componentConfiguration"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request ConfigurationRequestChannel configurationRequestChannel = new ConfigurationRequestChannel(); configurationRequestChannel.setAppName(DeviceConfigurationAppProperties.APP_NAME); diff --git a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceManagementConfigurationModule.java b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceManagementConfigurationModule.java index c651661e9bf..3f9b0b4b786 100644 --- a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceManagementConfigurationModule.java +++ b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/configuration/internal/DeviceManagementConfigurationModule.java @@ -19,7 +19,6 @@ import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.commons.util.xml.XmlUtil; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.configuration.DeviceConfigurationFactory; import org.eclipse.kapua.service.device.management.configuration.DeviceConfigurationManagementService; import org.eclipse.kapua.service.device.management.configuration.internal.settings.DeviceConfigurationManagementSettings; @@ -42,7 +41,6 @@ protected void configureModule() { @Inject DeviceConfigurationManagementService deviceConfigurationManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -53,7 +51,6 @@ DeviceConfigurationManagementService deviceConfigurationManagementService( return new DeviceConfigurationManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceManagementSnapshotModule.java b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceManagementSnapshotModule.java index da4d6252c4b..a6b81e7b0e0 100644 --- a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceManagementSnapshotModule.java +++ b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceManagementSnapshotModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.snapshot.internal; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.snapshot.DeviceSnapshotFactory; import org.eclipse.kapua.service.device.management.snapshot.DeviceSnapshotManagementService; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.device.registry.event.DeviceEventFactory; import org.eclipse.kapua.service.device.registry.event.DeviceEventService; -import javax.inject.Singleton; +import com.google.inject.Provides; public class DeviceManagementSnapshotModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(DeviceSnapshotFactory.class).to(DeviceSnapshotFactoryImpl.class); @@ -35,7 +36,6 @@ protected void configureModule() { @Singleton DeviceSnapshotManagementService deviceSnapshotManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -44,7 +44,6 @@ DeviceSnapshotManagementService deviceSnapshotManagementService( return new DeviceSnapshotManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceSnapshotManagementServiceImpl.java b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceSnapshotManagementServiceImpl.java index 61c84ec95bc..0a4a5e63e1a 100644 --- a/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceSnapshotManagementServiceImpl.java +++ b/service/device/management/configuration/internal/src/main/java/org/eclipse/kapua/service/device/management/snapshot/internal/DeviceSnapshotManagementServiceImpl.java @@ -12,13 +12,18 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.snapshot.internal; +import java.util.Date; + +import javax.inject.Inject; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.commons.AbstractDeviceManagementTransactionalServiceImpl; import org.eclipse.kapua.service.device.management.commons.call.DeviceCallBuilder; import org.eclipse.kapua.service.device.management.configuration.internal.DeviceConfigurationAppProperties; @@ -38,10 +43,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Inject; -import javax.inject.Singleton; -import java.util.Date; - /** * {@link DeviceSnapshotManagementService} implementation. * @@ -56,13 +57,11 @@ public class DeviceSnapshotManagementServiceImpl extends AbstractDeviceManagemen public DeviceSnapshotManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, DeviceSnapshotFactory deviceSnapshotFactory) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -78,7 +77,7 @@ public DeviceSnapshots get(KapuaId scopeId, KapuaId deviceId, Long timeout) ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(deviceId, "deviceId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request SnapshotRequestChannel snapshotRequestChannel = new SnapshotRequestChannel(); snapshotRequestChannel.setAppName(DeviceConfigurationAppProperties.APP_NAME); @@ -124,7 +123,7 @@ public void rollback(KapuaId scopeId, KapuaId deviceId, String snapshotId, Long ArgumentValidator.notNull(deviceId, "deviceId"); ArgumentValidator.notEmptyOrNull(snapshotId, "snapshotId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.execute, scopeId)); // Prepare the request SnapshotRequestChannel snapshotRequestChannel = new SnapshotRequestChannel(); snapshotRequestChannel.setAppName(DeviceConfigurationAppProperties.APP_NAME); diff --git a/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceInventoryManagementServiceImpl.java b/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceInventoryManagementServiceImpl.java index d2458609b13..1b257e79726 100644 --- a/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceInventoryManagementServiceImpl.java +++ b/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceInventoryManagementServiceImpl.java @@ -12,6 +12,10 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.inventory.internal; +import java.util.Date; + +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.KapuaIllegalArgumentException; import org.eclipse.kapua.commons.model.domains.Domains; @@ -19,7 +23,7 @@ import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.commons.AbstractDeviceManagementTransactionalServiceImpl; import org.eclipse.kapua.service.device.management.commons.call.DeviceCallBuilder; import org.eclipse.kapua.service.device.management.exception.DeviceManagementRequestContentException; @@ -53,9 +57,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; -import java.util.Date; - /** * {@link DeviceInventoryManagementService} implementation. * @@ -74,13 +75,11 @@ public class DeviceInventoryManagementServiceImpl extends AbstractDeviceManageme public DeviceInventoryManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, DeviceInventoryManagementFactory deviceInventoryManagementFactory) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -94,7 +93,7 @@ public DeviceInventory getInventory(KapuaId scopeId, KapuaId deviceId, Long time ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -105,6 +104,7 @@ public DeviceInventory getInventory(KapuaId scopeId, KapuaId deviceId, Long time InventoryRequestPayload inventoryRequestPayload = new InventoryRequestPayload(); InventoryEmptyRequestMessage inventoryRequestMessage = new InventoryEmptyRequestMessage() { + @Override public Class getResponseClass() { return InventoryListResponseMessage.class; @@ -146,7 +146,7 @@ public DeviceInventoryBundles getBundles(KapuaId scopeId, KapuaId deviceId, Long ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -157,6 +157,7 @@ public DeviceInventoryBundles getBundles(KapuaId scopeId, KapuaId deviceId, Long InventoryRequestPayload inventoryRequestPayload = new InventoryRequestPayload(); InventoryEmptyRequestMessage inventoryRequestMessage = new InventoryEmptyRequestMessage() { + @Override public Class getResponseClass() { return InventoryBundlesResponseMessage.class; @@ -192,7 +193,8 @@ public Class getResponseClass() { } @Override - public void execBundle(KapuaId scopeId, KapuaId deviceId, DeviceInventoryBundle deviceInventoryBundle, DeviceInventoryBundleAction deviceInventoryBundleAction, Long timeout) throws KapuaException { + public void execBundle(KapuaId scopeId, KapuaId deviceId, DeviceInventoryBundle deviceInventoryBundle, DeviceInventoryBundleAction deviceInventoryBundleAction, Long timeout) + throws KapuaException { // Argument Validation ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); @@ -204,7 +206,7 @@ public void execBundle(KapuaId scopeId, KapuaId deviceId, DeviceInventoryBundle performAdditionalValidationOnDeviceInventoryBundleId(deviceInventoryBundle.getId()); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -221,6 +223,7 @@ public void execBundle(KapuaId scopeId, KapuaId deviceId, DeviceInventoryBundle } InventoryBundleExecRequestMessage inventoryRequestMessage = new InventoryBundleExecRequestMessage() { + @Override public Class getResponseClass() { return InventoryNoContentResponseMessage.class; @@ -262,7 +265,7 @@ public DeviceInventoryContainers getContainers(KapuaId scopeId, KapuaId deviceId ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -273,6 +276,7 @@ public DeviceInventoryContainers getContainers(KapuaId scopeId, KapuaId deviceId InventoryRequestPayload inventoryRequestPayload = new InventoryRequestPayload(); InventoryEmptyRequestMessage inventoryRequestMessage = new InventoryEmptyRequestMessage() { + @Override public Class getResponseClass() { return InventoryContainersResponseMessage.class; @@ -304,11 +308,13 @@ public Class getResponseClass() { // Create event createDeviceEvent(scopeId, deviceId, inventoryRequestMessage, responseMessage); // Check response - return checkResponseAcceptedOrThrowError(responseMessage, () -> responseMessage.getPayload().getDeviceInventoryContainers().orElse(deviceInventoryManagementFactory.newDeviceInventoryContainers())); + return checkResponseAcceptedOrThrowError(responseMessage, + () -> responseMessage.getPayload().getDeviceInventoryContainers().orElse(deviceInventoryManagementFactory.newDeviceInventoryContainers())); } @Override - public void execContainer(KapuaId scopeId, KapuaId deviceId, DeviceInventoryContainer deviceInventoryContainer, DeviceInventoryContainerAction deviceInventoryContainerAction, Long timeout) throws KapuaException { + public void execContainer(KapuaId scopeId, KapuaId deviceId, DeviceInventoryContainer deviceInventoryContainer, DeviceInventoryContainerAction deviceInventoryContainerAction, Long timeout) + throws KapuaException { // Argument Validation ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); @@ -317,7 +323,7 @@ public void execContainer(KapuaId scopeId, KapuaId deviceId, DeviceInventoryCont ArgumentValidator.notNull(deviceInventoryContainer.getVersion(), "deviceInventoryContainer.version"); ArgumentValidator.notNull(deviceInventoryContainerAction, "deviceInventoryContainerAction"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -334,6 +340,7 @@ public void execContainer(KapuaId scopeId, KapuaId deviceId, DeviceInventoryCont } InventoryContainerExecRequestMessage inventoryRequestMessage = new InventoryContainerExecRequestMessage() { + @Override public Class getResponseClass() { return InventoryNoContentResponseMessage.class; @@ -358,7 +365,8 @@ public Class getResponseClass() { try { responseMessage = inventoryDeviceCallBuilder.send(); } catch (Exception e) { - LOG.error("Error while executing {} on DeviceInventoryContainer {}:{} for Device {}. Error: {}", deviceInventoryContainerAction, deviceInventoryContainer.getName(), deviceInventoryContainer.getVersion(), deviceId, e.getMessage(), e); + LOG.error("Error while executing {} on DeviceInventoryContainer {}:{} for Device {}. Error: {}", deviceInventoryContainerAction, deviceInventoryContainer.getName(), + deviceInventoryContainer.getVersion(), deviceId, e.getMessage(), e); throw e; } @@ -375,7 +383,7 @@ public DeviceInventorySystemPackages getSystemPackages(KapuaId scopeId, KapuaId ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -386,6 +394,7 @@ public DeviceInventorySystemPackages getSystemPackages(KapuaId scopeId, KapuaId InventoryRequestPayload inventoryRequestPayload = new InventoryRequestPayload(); InventoryEmptyRequestMessage inventoryRequestMessage = new InventoryEmptyRequestMessage() { + @Override public Class getResponseClass() { return InventorySystemPackagesResponseMessage.class; @@ -417,7 +426,8 @@ public Class getResponseClass() { // Create event createDeviceEvent(scopeId, deviceId, inventoryRequestMessage, responseMessage); // Check response - return checkResponseAcceptedOrThrowError(responseMessage, () -> responseMessage.getPayload().getDeviceInventorySystemPackages().orElse(deviceInventoryManagementFactory.newDeviceInventorySystemPackages())); + return checkResponseAcceptedOrThrowError(responseMessage, + () -> responseMessage.getPayload().getDeviceInventorySystemPackages().orElse(deviceInventoryManagementFactory.newDeviceInventorySystemPackages())); } @Override @@ -427,7 +437,7 @@ public DeviceInventoryPackages getDeploymentPackages(KapuaId scopeId, KapuaId de ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request InventoryRequestChannel inventoryRequestChannel = new InventoryRequestChannel(); inventoryRequestChannel.setAppName(DeviceInventoryAppProperties.APP_NAME); @@ -438,6 +448,7 @@ public DeviceInventoryPackages getDeploymentPackages(KapuaId scopeId, KapuaId de InventoryRequestPayload inventoryRequestPayload = new InventoryRequestPayload(); InventoryEmptyRequestMessage inventoryRequestMessage = new InventoryEmptyRequestMessage() { + @Override public Class getResponseClass() { return InventoryPackagesResponseMessage.class; @@ -469,22 +480,23 @@ public Class getResponseClass() { // Create event createDeviceEvent(scopeId, deviceId, inventoryRequestMessage, responseMessage); // Check response - return checkResponseAcceptedOrThrowError(responseMessage, () -> responseMessage.getPayload().getDeviceInventoryPackages().orElse(deviceInventoryManagementFactory.newDeviceInventoryPackages())); + return checkResponseAcceptedOrThrowError(responseMessage, + () -> responseMessage.getPayload().getDeviceInventoryPackages().orElse(deviceInventoryManagementFactory.newDeviceInventoryPackages())); } - /** * Performs an additional check on {@link DeviceInventoryBundle#getId()} to verify that it can be converted to a {@link Integer}. *

    - * This check is required because initially the property was created as a {@link String} even if in Kura it is a {@link Integer}. - * See Kura documentation on Device Inventory Bundle here + * This check is required because initially the property was created as a {@link String} even if in Kura it is a {@link Integer}. See Kura documentation on Device Inventory Bundle here *

    - * We cannot change the type of {@link DeviceInventoryBundle#getId()} from {@link String} to {@link Integer} because it would be an API breaking change. - * We can add a validation to improve the error returned in case a non-integer value is provided, since the current error returned is {@link NumberFormatException} (at line - * TranslatorAppInventoryBundleExecKapuaKura:74). + * We cannot change the type of {@link DeviceInventoryBundle#getId()} from {@link String} to {@link Integer} because it would be an API breaking change. We can add a validation to improve the + * error returned in case a non-integer value is provided, since the current error returned is {@link NumberFormatException} (at line TranslatorAppInventoryBundleExecKapuaKura:74). * - * @param deviceInventoryBundleId The {@link DeviceInventoryBundle#getId()} to check - * @throws KapuaIllegalArgumentException If {@link DeviceInventoryBundle#getId()} cannot be converted to a {@link Integer}. + * @param deviceInventoryBundleId + * The {@link DeviceInventoryBundle#getId()} to check + * @throws KapuaIllegalArgumentException + * If {@link DeviceInventoryBundle#getId()} cannot be converted to a {@link Integer}. * @since 2.0.0 */ private void performAdditionalValidationOnDeviceInventoryBundleId(String deviceInventoryBundleId) throws KapuaIllegalArgumentException { diff --git a/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceManagementInventoryModule.java b/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceManagementInventoryModule.java index 21f99c40d43..4e4ccf85e84 100644 --- a/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceManagementInventoryModule.java +++ b/service/device/management/inventory/internal/src/main/java/org/eclipse/kapua/service/device/management/inventory/internal/DeviceManagementInventoryModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.inventory.internal; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.inventory.DeviceInventoryManagementFactory; import org.eclipse.kapua.service.device.management.inventory.DeviceInventoryManagementService; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.device.registry.event.DeviceEventFactory; import org.eclipse.kapua.service.device.registry.event.DeviceEventService; -import javax.inject.Singleton; +import com.google.inject.Provides; public class DeviceManagementInventoryModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(DeviceInventoryManagementFactory.class).to(DeviceInventoryManagementFactoryImpl.class); @@ -35,7 +36,6 @@ protected void configureModule() { @Singleton DeviceInventoryManagementService deviceInventoryManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -44,7 +44,6 @@ DeviceInventoryManagementService deviceInventoryManagementService( return new DeviceInventoryManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/DeviceManagementJobModule.java b/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/DeviceManagementJobModule.java index e36951ecf53..cde4cfeefce 100644 --- a/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/DeviceManagementJobModule.java +++ b/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/DeviceManagementJobModule.java @@ -12,19 +12,20 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.job.internal; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.job.JobDeviceManagementOperationFactory; import org.eclipse.kapua.service.device.management.job.JobDeviceManagementOperationRepository; import org.eclipse.kapua.service.device.management.job.JobDeviceManagementOperationService; -import javax.inject.Singleton; +import com.google.inject.Provides; public class DeviceManagementJobModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(JobDeviceManagementOperationFactory.class).to(JobDeviceManagementOperationFactoryImpl.class); @@ -35,12 +36,10 @@ protected void configureModule() { public JobDeviceManagementOperationService jobDeviceManagementOperationService( JobDeviceManagementOperationFactory entityFactory, AuthorizationService authorizationService, - PermissionFactory permissionFactory, JobDeviceManagementOperationRepository repository, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new JobDeviceManagementOperationServiceImpl(entityFactory, authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-job-device-management-operation"), repository); } diff --git a/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/JobDeviceManagementOperationServiceImpl.java b/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/JobDeviceManagementOperationServiceImpl.java index 36fc997740a..9dcd11af9f6 100644 --- a/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/JobDeviceManagementOperationServiceImpl.java +++ b/service/device/management/job/internal/src/main/java/org/eclipse/kapua/service/device/management/job/internal/JobDeviceManagementOperationServiceImpl.java @@ -30,7 +30,7 @@ import org.eclipse.kapua.model.query.predicate.AndPredicate; import org.eclipse.kapua.model.query.predicate.AttributePredicate; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.job.JobDeviceManagementOperation; import org.eclipse.kapua.service.device.management.job.JobDeviceManagementOperationAttributes; import org.eclipse.kapua.service.device.management.job.JobDeviceManagementOperationCreator; @@ -51,7 +51,6 @@ public class JobDeviceManagementOperationServiceImpl private final JobDeviceManagementOperationFactory entityFactory; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final JobDeviceManagementOperationRepository repository; @@ -59,12 +58,10 @@ public class JobDeviceManagementOperationServiceImpl public JobDeviceManagementOperationServiceImpl( JobDeviceManagementOperationFactory entityFactory, AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, JobDeviceManagementOperationRepository repository) { this.entityFactory = entityFactory; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.repository = repository; } @@ -77,7 +74,7 @@ public JobDeviceManagementOperation create(JobDeviceManagementOperationCreator j ArgumentValidator.notNull(jobDeviceManagementOperationCreator.getJobId(), "jobDeviceManagementOperationCreator.jobId"); ArgumentValidator.notNull(jobDeviceManagementOperationCreator.getDeviceManagementOperationId(), "jobDeviceManagementOperationCreator.deviceManagementOperationId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); // Check duplicate KapuaQuery query = new KapuaQuery(jobDeviceManagementOperationCreator.getScopeId()); query.setPredicate( @@ -113,7 +110,7 @@ public JobDeviceManagementOperation find(KapuaId scopeId, KapuaId jobDeviceManag ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobDeviceManagementOperationId, "jobDeviceManagementOperationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, scopeId)); // Do find return txManager.execute(tx -> repository.find(tx, scopeId, jobDeviceManagementOperationId)) .orElse(null); @@ -124,7 +121,7 @@ public JobDeviceManagementOperationListResult query(KapuaQuery query) throws Kap // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.query(tx, query)); } @@ -134,7 +131,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.count(tx, query)); } @@ -146,7 +143,7 @@ public void delete(KapuaId scopeId, KapuaId jobDeviceManagementOperationId) thro ArgumentValidator.notNull(jobDeviceManagementOperationId, "jobDeviceManagementOperationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, scopeId)); // Do delete txManager.execute(tx -> repository.delete(tx, scopeId, jobDeviceManagementOperationId)); diff --git a/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceKeystoreManagementServiceImpl.java b/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceKeystoreManagementServiceImpl.java index 63e33accaec..0d1f4207c11 100644 --- a/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceKeystoreManagementServiceImpl.java +++ b/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceKeystoreManagementServiceImpl.java @@ -12,7 +12,10 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.keystore.internal; -import com.google.common.base.Strings; +import java.util.Date; + +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.KapuaIllegalArgumentException; @@ -21,7 +24,7 @@ import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.certificate.info.CertificateInfo; import org.eclipse.kapua.service.certificate.info.CertificateInfoFactory; import org.eclipse.kapua.service.certificate.info.CertificateInfoService; @@ -60,8 +63,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; -import java.util.Date; +import com.google.common.base.Strings; /** * {@link DeviceKeystoreManagementService} implementation. @@ -83,7 +85,6 @@ public class DeviceKeystoreManagementServiceImpl extends AbstractDeviceManagemen public DeviceKeystoreManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -91,7 +92,6 @@ public DeviceKeystoreManagementServiceImpl( CertificateInfoFactory certificateInfoFactory, DeviceKeystoreManagementFactory deviceKeystoreManagementFactory) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -107,7 +107,7 @@ public DeviceKeystores getKeystores(KapuaId scopeId, KapuaId deviceId, Long time ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -117,6 +117,7 @@ public DeviceKeystores getKeystores(KapuaId scopeId, KapuaId deviceId, Long time KeystoreRequestPayload keystoreRequestPayload = new KeystoreRequestPayload(); KeystoreQueryRequestMessage keystoreRequestMessage = new KeystoreQueryRequestMessage() { + @Override public Class getResponseClass() { return KeystoresResponseMessage.class; @@ -170,7 +171,7 @@ public DeviceKeystoreItems getKeystoreItems(KapuaId scopeId, KapuaId deviceId, D throw new KapuaIllegalArgumentException("itemQuery.alias", itemQuery.getAlias()); } // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -186,6 +187,7 @@ public DeviceKeystoreItems getKeystoreItems(KapuaId scopeId, KapuaId deviceId, D } KeystoreQueryRequestMessage keystoreRequestMessage = new KeystoreQueryRequestMessage() { + @Override public Class getResponseClass() { return KeystoreItemsResponseMessage.class; @@ -227,7 +229,7 @@ public DeviceKeystoreItem getKeystoreItem(KapuaId scopeId, KapuaId deviceId, Str ArgumentValidator.notEmptyOrNull(keystoreId, "keystoreId"); ArgumentValidator.notEmptyOrNull(alias, "alias"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -248,6 +250,7 @@ public DeviceKeystoreItem getKeystoreItem(KapuaId scopeId, KapuaId deviceId, Str } KeystoreQueryRequestMessage keystoreRequestMessage = new KeystoreQueryRequestMessage() { + @Override public Class getResponseClass() { return KeystoreItemResponseMessage.class; @@ -293,7 +296,8 @@ public void createKeystoreCertificate(KapuaId scopeId, KapuaId deviceId, String try { certificateInfo = certificateInfoService.find(scopeId, certificateId); } catch (UnsupportedOperationException e) { - LOG.warn("Unable to get the certificate {} since the implementation does not support CertificateInfoService.find(scopeId, certificateId)... Returning KapuaEntityNotFoundException!", certificateId); + LOG.warn("Unable to get the certificate {} since the implementation does not support CertificateInfoService.find(scopeId, certificateId)... Returning KapuaEntityNotFoundException!", + certificateId); throw new KapuaEntityNotFoundException(CertificateInfo.TYPE, certificateId); } @@ -316,7 +320,7 @@ public void createKeystoreCertificate(KapuaId scopeId, KapuaId deviceId, DeviceK ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(keystoreCertificate, "keystoreCertificate"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -332,6 +336,7 @@ public void createKeystoreCertificate(KapuaId scopeId, KapuaId deviceId, DeviceK } KeystoreCertificateRequestMessage keystoreRequestMessage = new KeystoreCertificateRequestMessage() { + @Override public Class getResponseClass() { return KeystoreNoContentResponseMessage.class; @@ -373,7 +378,7 @@ public void createKeystoreKeypair(KapuaId scopeId, KapuaId deviceId, DeviceKeyst ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(keystoreKeypair, "keystoreKeypair"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -389,6 +394,7 @@ public void createKeystoreKeypair(KapuaId scopeId, KapuaId deviceId, DeviceKeyst } KeystoreKeypairRequestMessage keystoreRequestMessage = new KeystoreKeypairRequestMessage() { + @Override public Class getResponseClass() { return KeystoreNoContentResponseMessage.class; @@ -430,7 +436,7 @@ public DeviceKeystoreCSR createKeystoreCSR(KapuaId scopeId, KapuaId deviceId, De ArgumentValidator.notNull(deviceId, DEVICE_ID); ArgumentValidator.notNull(keystoreCSRInfo, "keystoreCSRInfo"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -446,6 +452,7 @@ public DeviceKeystoreCSR createKeystoreCSR(KapuaId scopeId, KapuaId deviceId, De } KeystoreCsrRequestMessage keystoreRequestMessage = new KeystoreCsrRequestMessage() { + @Override public Class getResponseClass() { return KeystoreCsrResponseMessage.class; @@ -488,7 +495,7 @@ public void deleteKeystoreItem(KapuaId scopeId, KapuaId deviceId, String keystor ArgumentValidator.notEmptyOrNull(keystoreId, "keystoreId"); ArgumentValidator.notEmptyOrNull(alias, "alias"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.delete, scopeId)); // Prepare the request KeystoreRequestChannel keystoreRequestChannel = new KeystoreRequestChannel(); keystoreRequestChannel.setAppName(DeviceKeystoreAppProperties.APP_NAME); @@ -509,6 +516,7 @@ public void deleteKeystoreItem(KapuaId scopeId, KapuaId deviceId, String keystor } KeystoreQueryRequestMessage keystoreRequestMessage = new KeystoreQueryRequestMessage() { + @Override public Class getResponseClass() { return KeystoreNoContentResponseMessage.class; diff --git a/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceManagementKeystoreModule.java b/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceManagementKeystoreModule.java index a863682f9e7..cd9d2bc6c6f 100644 --- a/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceManagementKeystoreModule.java +++ b/service/device/management/keystore/internal/src/main/java/org/eclipse/kapua/service/device/management/keystore/internal/DeviceManagementKeystoreModule.java @@ -12,11 +12,11 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.keystore.internal; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.certificate.info.CertificateInfoFactory; import org.eclipse.kapua.service.certificate.info.CertificateInfoService; import org.eclipse.kapua.service.device.management.keystore.DeviceKeystoreManagementFactory; @@ -25,9 +25,10 @@ import org.eclipse.kapua.service.device.registry.event.DeviceEventFactory; import org.eclipse.kapua.service.device.registry.event.DeviceEventService; -import javax.inject.Singleton; +import com.google.inject.Provides; public class DeviceManagementKeystoreModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(DeviceKeystoreManagementFactory.class).to(DeviceKeystoreManagementFactoryImpl.class); @@ -37,7 +38,6 @@ protected void configureModule() { @Singleton DeviceKeystoreManagementService deviceKeystoreManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -49,7 +49,6 @@ DeviceKeystoreManagementService deviceKeystoreManagementService( return new DeviceKeystoreManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DeviceManagementPackagesModule.java b/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DeviceManagementPackagesModule.java index a7b5dbf623d..32ad41abbdb 100644 --- a/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DeviceManagementPackagesModule.java +++ b/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DeviceManagementPackagesModule.java @@ -20,7 +20,6 @@ import org.eclipse.kapua.commons.core.SimpleJaxbClassProvider; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.packages.DevicePackageFactory; import org.eclipse.kapua.service.device.management.packages.DevicePackageManagementService; import org.eclipse.kapua.service.device.management.packages.internal.setting.PackageManagementServiceSetting; @@ -52,7 +51,6 @@ protected void configureModule() { @Inject DevicePackageManagementService devicePackageManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -65,7 +63,6 @@ DevicePackageManagementService devicePackageManagementService( return new DevicePackageManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DevicePackageManagementServiceImpl.java b/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DevicePackageManagementServiceImpl.java index 83784300540..9cbc1dbec2f 100644 --- a/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DevicePackageManagementServiceImpl.java +++ b/service/device/management/packages/internal/src/main/java/org/eclipse/kapua/service/device/management/packages/internal/DevicePackageManagementServiceImpl.java @@ -33,7 +33,7 @@ import org.eclipse.kapua.model.type.ObjectTypeConverter; import org.eclipse.kapua.model.type.ObjectValueConverter; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.commons.AbstractDeviceManagementTransactionalServiceImpl; import org.eclipse.kapua.service.device.management.commons.call.DeviceCallBuilder; import org.eclipse.kapua.service.device.management.message.KapuaMethod; @@ -100,7 +100,6 @@ public class DevicePackageManagementServiceImpl extends AbstractDeviceManagement public DevicePackageManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -110,7 +109,6 @@ public DevicePackageManagementServiceImpl( PackageManagementServiceSetting packageManagementServiceSetting) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -127,7 +125,7 @@ public DevicePackages getInstalled(KapuaId scopeId, KapuaId deviceId, Long timeo ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request PackageRequestChannel packageRequestChannel = new PackageRequestChannel(); packageRequestChannel.setAppName(PackageAppProperties.APP_NAME); @@ -193,7 +191,7 @@ public KapuaId downloadExec(KapuaId scopeId, KapuaId deviceId, DevicePackageDown verifyOverflowPackageFields(packageDownloadRequest); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Generate requestId KapuaId operationId = new KapuaEid(IdGenerator.generate()); // Prepare the request @@ -277,7 +275,7 @@ public DevicePackageDownloadOperation downloadStatus(KapuaId scopeId, KapuaId de ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request PackageRequestChannel packageRequestChannel = new PackageRequestChannel(); packageRequestChannel.setAppName(PackageAppProperties.APP_NAME); @@ -332,7 +330,7 @@ public void downloadStop(KapuaId scopeId, KapuaId deviceId, Long timeout) throws ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Prepare the request PackageRequestChannel packageRequestChannel = new PackageRequestChannel(); packageRequestChannel.setAppName(PackageAppProperties.APP_NAME); @@ -388,7 +386,7 @@ public KapuaId installExec(KapuaId scopeId, KapuaId deviceId, DevicePackageInsta ArgumentValidator.notNull(deployInstallRequest, "deployInstallRequest"); ArgumentValidator.notNull(packageInstallOptions, "packageInstallOptions"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Generate requestId KapuaId operationId = new KapuaEid(IdGenerator.generate()); // Prepare the request @@ -449,7 +447,7 @@ public DevicePackageInstallOperation installStatus(KapuaId scopeId, KapuaId devi ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request PackageRequestChannel packageRequestChannel = new PackageRequestChannel(); packageRequestChannel.setAppName(PackageAppProperties.APP_NAME); @@ -506,7 +504,7 @@ public KapuaId uninstallExec(KapuaId scopeId, KapuaId deviceId, DevicePackageUni ArgumentValidator.notNull(packageUninstallRequest, "packageUninstallRequest"); ArgumentValidator.notNull(packageUninstallOptions, "packageUninstallOptions"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.write, scopeId)); // Generate requestId KapuaId operationId = new KapuaEid(IdGenerator.generate()); // Prepare the request @@ -567,7 +565,7 @@ public DevicePackageUninstallOperation uninstallStatus(KapuaId scopeId, KapuaId ArgumentValidator.notNull(scopeId, SCOPE_ID); ArgumentValidator.notNull(deviceId, DEVICE_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, Actions.read, scopeId)); // Prepare the request PackageRequestChannel packageRequestChannel = new PackageRequestChannel(); packageRequestChannel.setAppName(PackageAppProperties.APP_NAME); diff --git a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementOperationRegistryServiceImpl.java b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementOperationRegistryServiceImpl.java index 497af251b39..4846a29db87 100644 --- a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementOperationRegistryServiceImpl.java +++ b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementOperationRegistryServiceImpl.java @@ -12,6 +12,11 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.registry.operation.internal; +import java.util.Date; + +import javax.inject.Inject; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; @@ -20,7 +25,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.message.notification.NotifyStatus; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperation; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationCreator; @@ -32,16 +37,11 @@ import org.eclipse.kapua.service.device.registry.DeviceRepository; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Inject; -import javax.inject.Singleton; -import java.util.Date; - @Singleton public class DeviceManagementOperationRegistryServiceImpl implements DeviceManagementOperationRegistryService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final DeviceRepository deviceRepository; private final TxManager txManager; private final DeviceManagementOperationRepository repository; @@ -50,13 +50,11 @@ public class DeviceManagementOperationRegistryServiceImpl @Inject public DeviceManagementOperationRegistryServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceRepository deviceRepository, TxManager txManager, DeviceManagementOperationRepository repository, DeviceManagementOperationFactory entityFactory) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.deviceRepository = deviceRepository; this.txManager = txManager; this.repository = repository; @@ -75,7 +73,7 @@ public DeviceManagementOperation create(DeviceManagementOperationCreator creator ArgumentValidator.notNull(creator.getAppId(), "creator.appId"); ArgumentValidator.notNull(creator.getAction(), "creator.action"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.write, null)); return txManager.execute(tx -> { // Check device existence @@ -111,7 +109,7 @@ public DeviceManagementOperation update(DeviceManagementOperation entity) throws ArgumentValidator.notNull(entity.getAppId(), "deviceManagementOperation.appId"); ArgumentValidator.notNull(entity.getAction(), "deviceManagementOperation.action"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.write, null)); return txManager.execute(tx -> { // Check device existence @@ -133,7 +131,7 @@ public DeviceManagementOperation find(KapuaId scopeId, KapuaId entityId) throws ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(entityId, "deviceManagementOperationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, scopeId)); // Do find return txManager.execute(tx -> repository.find(tx, scopeId, entityId)) .orElse(null); @@ -147,7 +145,7 @@ public DeviceManagementOperation findByOperationId(KapuaId scopeId, KapuaId oper ArgumentValidator.notNull(operationId, "operationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, scopeId)); // Do find return txManager.execute(tx -> repository.findByOperationId(tx, scopeId, operationId)) .orElse(null); @@ -158,7 +156,7 @@ public DeviceManagementOperationListResult query(KapuaQuery query) throws KapuaE // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.query(tx, query)); } @@ -179,7 +177,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> repository.count(tx, query)); } @@ -191,7 +189,7 @@ public void delete(KapuaId scopeId, KapuaId entityId) throws KapuaException { ArgumentValidator.notNull(entityId, "deviceManagementOperationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.delete, scopeId)); // Do delete txManager.execute(tx -> repository.delete(tx, scopeId, entityId)); diff --git a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementRegistryOperationModule.java b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementRegistryOperationModule.java index 5b25ca4fd4f..3fb99dc939c 100644 --- a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementRegistryOperationModule.java +++ b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/internal/DeviceManagementRegistryOperationModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.registry.operation.internal; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationFactory; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationRegistryService; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationRepository; import org.eclipse.kapua.service.device.registry.DeviceRepository; -import javax.inject.Singleton; +import com.google.inject.Provides; public class DeviceManagementRegistryOperationModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(DeviceManagementOperationFactory.class).to(DeviceManagementOperationFactoryImpl.class); @@ -35,14 +36,12 @@ protected void configureModule() { @Singleton DeviceManagementOperationRegistryService deviceManagementOperationRegistryService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceRepository deviceRepository, DeviceManagementOperationRepository repository, DeviceManagementOperationFactory entityFactory, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new DeviceManagementOperationRegistryServiceImpl( authorizationService, - permissionFactory, deviceRepository, jpaTxManagerFactory.create("kapua-device_management_operation_registry"), repository, diff --git a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/DeviceManagementRegistryNotificationModule.java b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/DeviceManagementRegistryNotificationModule.java index 7488732846c..bfe7671f10e 100644 --- a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/DeviceManagementRegistryNotificationModule.java +++ b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/DeviceManagementRegistryNotificationModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.registry.operation.notification.internal; -import com.google.inject.Provides; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationRepository; import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationFactory; import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationRepository; import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationService; -import javax.inject.Singleton; +import com.google.inject.Provides; public class DeviceManagementRegistryNotificationModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(ManagementOperationNotificationFactory.class).to(ManagementOperationNotificationFactoryImpl.class); @@ -35,14 +36,12 @@ protected void configureModule() { @Singleton ManagementOperationNotificationService managementOperationNotificationService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, ManagementOperationNotificationFactory entityFactory, ManagementOperationNotificationRepository repository, DeviceManagementOperationRepository deviceManagementOperationRepository, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new ManagementOperationNotificationServiceImpl( authorizationService, - permissionFactory, entityFactory, jpaTxManagerFactory.create("kapua-device_management_operation_registry"), repository, diff --git a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/ManagementOperationNotificationServiceImpl.java b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/ManagementOperationNotificationServiceImpl.java index 3fed314c565..4f90bb251a8 100644 --- a/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/ManagementOperationNotificationServiceImpl.java +++ b/service/device/management/registry/internal/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/internal/ManagementOperationNotificationServiceImpl.java @@ -12,6 +12,9 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.registry.operation.notification.internal; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; @@ -20,7 +23,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperation; import org.eclipse.kapua.service.device.management.registry.operation.DeviceManagementOperationRepository; import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotification; @@ -31,14 +34,10 @@ import org.eclipse.kapua.service.device.management.registry.operation.notification.ManagementOperationNotificationService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Inject; -import javax.inject.Singleton; - @Singleton public class ManagementOperationNotificationServiceImpl implements ManagementOperationNotificationService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final ManagementOperationNotificationFactory entityFactory; private final TxManager txManager; private final ManagementOperationNotificationRepository repository; @@ -47,13 +46,11 @@ public class ManagementOperationNotificationServiceImpl implements ManagementOpe @Inject public ManagementOperationNotificationServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, ManagementOperationNotificationFactory entityFactory, TxManager txManager, ManagementOperationNotificationRepository repository, DeviceManagementOperationRepository deviceManagementOperationRepository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.entityFactory = entityFactory; this.txManager = txManager; this.repository = repository; @@ -71,7 +68,7 @@ public ManagementOperationNotification create(ManagementOperationNotificationCre ArgumentValidator.notNull(creator.getProgress(), "managementOperationNotificationCreator.progress"); ArgumentValidator.notNegative(creator.getProgress(), "managementOperationNotificationCreator.progress"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.write, null)); return txManager.execute(tx -> { // Check operation existence @@ -97,7 +94,7 @@ public ManagementOperationNotification find(KapuaId scopeId, KapuaId entityId) t ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(entityId, "managementOperationNotificationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, scopeId)); // Do find return txManager.execute(tx -> repository.find(tx, scopeId, entityId)) .orElse(null); @@ -108,7 +105,7 @@ public ManagementOperationNotificationListResult query(KapuaQuery query) throws // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.query(tx, query)); } @@ -118,7 +115,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> repository.count(tx, query)); } @@ -130,7 +127,7 @@ public void delete(KapuaId scopeId, KapuaId entityId) throws KapuaException { ArgumentValidator.notNull(entityId, "managementOperationNotificationId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.delete, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT_REGISTRY, Actions.delete, null)); // Do delete txManager.execute(tx -> repository.delete(tx, scopeId, entityId)); diff --git a/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceManagementRequestModule.java b/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceManagementRequestModule.java index dcef1639d6c..ec8332ca9e5 100644 --- a/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceManagementRequestModule.java +++ b/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceManagementRequestModule.java @@ -19,7 +19,6 @@ import org.eclipse.kapua.commons.core.SimpleJaxbClassProvider; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.request.DeviceRequestManagementService; import org.eclipse.kapua.service.device.management.request.GenericRequestFactory; import org.eclipse.kapua.service.device.management.request.message.request.GenericRequestChannel; @@ -55,7 +54,6 @@ protected void configureModule() { @Inject DeviceRequestManagementService deviceRequestManagementService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, @@ -65,7 +63,6 @@ DeviceRequestManagementService deviceRequestManagementService( return new DeviceRequestManagementServiceImpl( jpaTxManagerFactory.create("kapua-device_management_operation_registry"), authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService, diff --git a/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceRequestManagementServiceImpl.java b/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceRequestManagementServiceImpl.java index 170292467a1..0b36280140e 100644 --- a/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceRequestManagementServiceImpl.java +++ b/service/device/management/request/internal/src/main/java/org/eclipse/kapua/service/device/management/request/internal/DeviceRequestManagementServiceImpl.java @@ -13,13 +13,17 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.management.request.internal; +import java.util.Date; + +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.management.commons.AbstractDeviceManagementTransactionalServiceImpl; import org.eclipse.kapua.service.device.management.commons.call.DeviceCallBuilder; import org.eclipse.kapua.service.device.management.exception.DeviceManagementRequestBadMethodException; @@ -36,9 +40,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; -import java.util.Date; - /** * {@link DeviceRequestManagementService} implementation. * @@ -54,14 +55,12 @@ public class DeviceRequestManagementServiceImpl extends AbstractDeviceManagement public DeviceRequestManagementServiceImpl( TxManager txManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceEventService deviceEventService, DeviceEventFactory deviceEventFactory, DeviceRegistryService deviceRegistryService, GenericRequestFactory genericRequestFactory) { super(txManager, authorizationService, - permissionFactory, deviceEventService, deviceEventFactory, deviceRegistryService); @@ -80,24 +79,24 @@ public GenericResponseMessage exec(KapuaId scopeId, KapuaId deviceId, GenericReq // Check Access Actions action; switch (requestInput.getChannel().getMethod()) { - case EXECUTE: - action = Actions.execute; - break; - case READ: - case OPTIONS: - action = Actions.read; - break; - case CREATE: - case WRITE: - action = Actions.write; - break; - case DELETE: - action = Actions.delete; - break; - default: - throw new DeviceManagementRequestBadMethodException(requestInput.getChannel().getMethod()); + case EXECUTE: + action = Actions.execute; + break; + case READ: + case OPTIONS: + action = Actions.read; + break; + case CREATE: + case WRITE: + action = Actions.write; + break; + case DELETE: + action = Actions.delete; + break; + default: + throw new DeviceManagementRequestBadMethodException(requestInput.getChannel().getMethod()); } - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_MANAGEMENT, action, requestInput.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_MANAGEMENT, action, requestInput.getScopeId())); // Prepare the request GenericRequestChannel genericRequestChannel = genericRequestFactory.newRequestChannel(); genericRequestChannel.setAppName(requestInput.getChannel().getAppName()); diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/connection/listener/internal/DeviceConnectionEventListenerModule.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/connection/listener/internal/DeviceConnectionEventListenerModule.java index 6019ae5b196..53b55a0591d 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/connection/listener/internal/DeviceConnectionEventListenerModule.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/connection/listener/internal/DeviceConnectionEventListenerModule.java @@ -22,7 +22,6 @@ import org.eclipse.kapua.event.ServiceEventBus; import org.eclipse.kapua.event.ServiceEventBusException; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.connection.listener.DeviceConnectionEventListenerService; import org.eclipse.kapua.service.device.registry.KapuaDeviceRegistrySettingKeys; import org.eclipse.kapua.service.device.registry.KapuaDeviceRegistrySettings; @@ -46,7 +45,6 @@ protected void configureModule() { @ProvidesIntoSet protected ServiceModule deviceConnectionEventListenerServiceModule(DeviceConnectionEventListenerService deviceConnectionEventListenerService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, KapuaDeviceRegistrySettings kapuaDeviceRegistrySettings, @Named("DeviceRegistryTransactionManager") TxManager txManager, EventStoreRecordRepository eventStoreRecordRepository, @@ -61,7 +59,6 @@ protected ServiceModule deviceConnectionEventListenerServiceModule(DeviceConnect new ServiceEventHouseKeeperFactoryImpl( new EventStoreServiceImpl( authorizationService, - permissionFactory, txManager, eventStoreRecordRepository ), diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/DeviceRegistryModule.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/DeviceRegistryModule.java index d66ca29bc25..af6a7008b1c 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/DeviceRegistryModule.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/DeviceRegistryModule.java @@ -44,7 +44,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.access.GroupQueryHelper; import org.eclipse.kapua.service.authorization.group.GroupService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.authentication.api.DeviceConnectionCredentialAdapter; import org.eclipse.kapua.service.device.registry.common.DeviceValidation; import org.eclipse.kapua.service.device.registry.common.DeviceValidationImpl; @@ -129,8 +128,6 @@ public Domain deviceEventDomain() { ServiceModule deviceRegistryModule(DeviceConnectionService deviceConnectionService, DeviceRegistryService deviceRegistryService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, - KapuaJpaTxManagerFactory txManagerFactory, EventStoreRecordRepository eventStoreRecordRepository, ServiceEventBus serviceEventBus, KapuaDeviceRegistrySettings kapuaDeviceRegistrySettings, @@ -144,7 +141,6 @@ ServiceModule deviceRegistryModule(DeviceConnectionService deviceConnectionServi new ServiceEventHouseKeeperFactoryImpl( new EventStoreServiceImpl( authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-device"), eventStoreRecordRepository ), @@ -159,7 +155,6 @@ ServiceModule deviceRegistryModule(DeviceConnectionService deviceConnectionServi @Singleton DeviceValidation deviceValidation(KapuaDeviceRegistrySettings deviceRegistrySettings, AuthorizationService authorizationService, - PermissionFactory permissionFactory, GroupService groupService, DeviceConnectionService deviceConnectionService, DeviceEventService deviceEventService, @@ -168,7 +163,6 @@ DeviceValidation deviceValidation(KapuaDeviceRegistrySettings deviceRegistrySett return new DeviceValidationImpl(deviceRegistrySettings.getInt(KapuaDeviceRegistrySettingKeys.DEVICE_LIFECYCLE_BIRTH_VAR_FIELDS_LENGTH_MAX), deviceRegistrySettings.getInt(KapuaDeviceRegistrySettingKeys.DEVICE_LIFECYCLE_BIRTH_EXTENDED_PROPERTIES_LENGTH_MAX), authorizationService, - permissionFactory, groupService, deviceConnectionService, deviceEventService, @@ -181,7 +175,6 @@ DeviceValidation deviceValidation(KapuaDeviceRegistrySettings deviceRegistrySett DeviceRegistryService deviceRegistryService( @Named("DeviceRegistryServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceRepository deviceRepository, DeviceFactory deviceFactory, GroupQueryHelper groupQueryHelper, @@ -191,7 +184,6 @@ DeviceRegistryService deviceRegistryService( return new DeviceRegistryServiceImpl( serviceConfigurationManager, authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-device"), deviceRepository, deviceFactory, @@ -286,7 +278,6 @@ protected DeviceConnectionRepository deviceConnectionRepository(DeviceRegistryCa @Singleton protected DeviceConnectionOptionService deviceConnectionOptionService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceConnectionRepository deviceConnectionRepository, DeviceConnectionFactory entityFactory, DeviceConnectionOptionRepository repository, @@ -294,7 +285,6 @@ protected DeviceConnectionOptionService deviceConnectionOptionService( Map availableDeviceConnectionAdapters) { return new DeviceConnectionOptionServiceImpl( authorizationService, - permissionFactory, txManager, deviceConnectionRepository, entityFactory, @@ -312,14 +302,12 @@ protected DeviceConnectionOptionRepository deviceConnectionOptionRepository(Kapu @Singleton protected DeviceEventService deviceEventService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceRepository deviceRepository, DeviceEventFactory entityFactory, DeviceEventRepository deviceEventRepository, @Named("DeviceRegistryTransactionManager") TxManager txManager) { return new DeviceEventServiceImpl( authorizationService, - permissionFactory, txManager, deviceRepository, entityFactory, diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/common/DeviceValidationImpl.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/common/DeviceValidationImpl.java index f836e166894..40a9cd58eca 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/common/DeviceValidationImpl.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/common/DeviceValidationImpl.java @@ -28,7 +28,6 @@ import org.eclipse.kapua.service.authorization.group.Group; import org.eclipse.kapua.service.authorization.group.GroupService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.Device; import org.eclipse.kapua.service.device.registry.DeviceCreator; import org.eclipse.kapua.service.device.registry.DeviceExtendedProperty; @@ -55,7 +54,6 @@ public final class DeviceValidationImpl implements DeviceValidation { private final Integer birthFieldsClobMaxLength; private final Integer birthFieldsExtendedPropertyValueMaxLength; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final GroupService groupService; private final DeviceConnectionService deviceConnectionService; private final DeviceEventService deviceEventService; @@ -66,7 +64,6 @@ public DeviceValidationImpl( Integer birthFieldsClobMaxLength, Integer birthFieldsExtendedPropertyValueMaxLength, AuthorizationService authorizationService, - PermissionFactory permissionFactory, GroupService groupService, DeviceConnectionService deviceConnectionService, DeviceEventService deviceEventService, @@ -75,7 +72,6 @@ public DeviceValidationImpl( this.birthFieldsClobMaxLength = birthFieldsClobMaxLength; this.birthFieldsExtendedPropertyValueMaxLength = birthFieldsExtendedPropertyValueMaxLength; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.groupService = groupService; this.deviceConnectionService = deviceConnectionService; this.deviceEventService = deviceEventService; @@ -260,7 +256,7 @@ public void validateCreatePreconditions(DeviceCreator deviceCreator) throws Kapu } } // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.write, deviceCreator.getScopeId(), deviceCreator.getGroupId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.write, deviceCreator.getScopeId(), deviceCreator.getGroupId())); } /** @@ -291,7 +287,7 @@ public void validateUpdatePreconditions(TxContext txContext, Device device) thro // .groupId // Check that current User can manage the current Group of the Device KapuaId currentGroupId = findCurrentGroupId(txContext, device.getScopeId(), device.getId()); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.write, device.getScopeId(), currentGroupId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.write, device.getScopeId(), currentGroupId)); // Check that current User can manage the target Group of the Device if (device.getGroupId() != null) { @@ -300,7 +296,7 @@ public void validateUpdatePreconditions(TxContext txContext, Device device) thro () -> groupService.find(device.getScopeId(), device.getGroupId()) ), "device.groupId"); } - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.write, device.getScopeId(), device.getGroupId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.write, device.getScopeId(), device.getGroupId())); // .status ArgumentValidator.notNull(device.getStatus(), "device.status"); @@ -479,7 +475,7 @@ public void validateFindPreconditions(TxContext txContext, KapuaId scopeId, Kapu ArgumentValidator.notNull(deviceId, "deviceId"); // Check access KapuaId groupId = findCurrentGroupId(txContext, scopeId, deviceId); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.read, scopeId, groupId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.read, scopeId, groupId)); } /** @@ -508,7 +504,7 @@ public void validateQueryPreconditions(KapuaQuery query) throws KapuaException { } } // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.read, query.getScopeId(), Group.ANY)); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.read, query.getScopeId(), Group.ANY)); } /** @@ -529,7 +525,7 @@ public void validateCountPreconditions(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.read, query.getScopeId(), Group.ANY)); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.read, query.getScopeId(), Group.ANY)); } /** @@ -554,7 +550,7 @@ public void validateDeletePreconditions(TxContext txContext, KapuaId scopeId, Ka ArgumentValidator.notNull(deviceId, "deviceId"); // Check access KapuaId groupId = findCurrentGroupId(txContext, scopeId, deviceId); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE, Actions.delete, scopeId, groupId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE, Actions.delete, scopeId, groupId)); } /** diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/internal/DeviceConnectionServiceImpl.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/internal/DeviceConnectionServiceImpl.java index 3b30d5994e1..b5b0e6ecaad 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/internal/DeviceConnectionServiceImpl.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/internal/DeviceConnectionServiceImpl.java @@ -35,7 +35,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.authentication.api.DeviceConnectionCredentialAdapter; import org.eclipse.kapua.service.device.registry.common.DeviceValidationRegex; import org.eclipse.kapua.service.device.registry.connection.DeviceConnection; @@ -76,13 +76,12 @@ public class DeviceConnectionServiceImpl extends KapuaConfigurableServiceBase im public DeviceConnectionServiceImpl( @Named("DeviceConnectionServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceConnectionFactory entityFactory, @Named("DeviceRegistryTransactionManager") TxManager txManager, DeviceConnectionRepository repository, Map availableDeviceConnectionAdapters, EventStorer eventStorer) { - super(txManager, serviceConfigurationManager, Domains.DEVICE_CONNECTION, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.DEVICE_CONNECTION, authorizationService); this.entityFactory = entityFactory; this.repository = repository; this.availableDeviceConnectionAdapters = availableDeviceConnectionAdapters; @@ -106,7 +105,7 @@ public DeviceConnection create(DeviceConnectionCreator deviceConnectionCreator) throw new KapuaIllegalArgumentException("deviceConnectionCreator.authenticationType", deviceConnectionCreator.getAuthenticationType()); } // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.write, null)); return txManager.execute(tx -> { //TODO: check whether this is anywhere efficient // Check duplicate ClientId @@ -146,7 +145,7 @@ public DeviceConnection update(DeviceConnection deviceConnection) throw new KapuaIllegalArgumentException("deviceConnection.authenticationType", deviceConnection.getAuthenticationType()); } // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.write, null)); // Do Update return txManager.execute(tx -> repository.update(tx, deviceConnection)); } @@ -159,7 +158,7 @@ public DeviceConnection find(KapuaId scopeId, KapuaId entityId) ArgumentValidator.notNull(entityId, "entityId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.read, scopeId)); // Do find return txManager.execute(tx -> repository.find(tx, scopeId, entityId)) @@ -188,7 +187,7 @@ public DeviceConnectionListResult query(KapuaQuery query) ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.query(tx, query)); @@ -201,7 +200,7 @@ public long count(KapuaQuery query) ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> repository.count(tx, query)); @@ -215,7 +214,7 @@ public void delete(KapuaId scopeId, KapuaId deviceConnectionId) ArgumentValidator.notNull(scopeId, "deviceConnection.scopeId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.write, null)); txManager.execute(tx -> repository.delete(tx, scopeId, deviceConnectionId)); } @@ -240,7 +239,7 @@ public void disconnect(KapuaId scopeId, KapuaId deviceConnectionId) throws Kapua ArgumentValidator.notNull(scopeId, "deviceConnection.scopeId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.write, null)); // Find the specified DeviceConnection DeviceConnection deviceConnection = txManager.execute( diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/internal/DeviceConnectionOptionServiceImpl.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/internal/DeviceConnectionOptionServiceImpl.java index 0cbaa1e382c..0fdfe3ac4f1 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/internal/DeviceConnectionOptionServiceImpl.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/internal/DeviceConnectionOptionServiceImpl.java @@ -30,7 +30,7 @@ import org.eclipse.kapua.model.query.predicate.AndPredicate; import org.eclipse.kapua.model.query.predicate.AttributePredicate.Operator; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.authentication.api.DeviceConnectionCredentialAdapter; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionAttributes; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionFactory; @@ -52,7 +52,6 @@ public class DeviceConnectionOptionServiceImpl implements DeviceConnectionOptionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final DeviceConnectionRepository deviceConnectionRepository; private final DeviceConnectionFactory entityFactory; @@ -62,14 +61,12 @@ public class DeviceConnectionOptionServiceImpl implements DeviceConnectionOption @Inject public DeviceConnectionOptionServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, DeviceConnectionRepository deviceConnectionRepository, DeviceConnectionFactory entityFactory, DeviceConnectionOptionRepository repository, Map availableDeviceConnectionAdapters) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.deviceConnectionRepository = deviceConnectionRepository; this.entityFactory = entityFactory; @@ -94,7 +91,7 @@ public DeviceConnectionOption update(DeviceConnectionOption deviceConnectionOpti if (!availableDeviceConnectionAdapters.containsKey(deviceConnectionOptions.getAuthenticationType())) { throw new KapuaIllegalArgumentException("deviceConnection.authenticationType", deviceConnectionOptions.getAuthenticationType()); } - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.write, deviceConnectionOptions.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.write, deviceConnectionOptions.getScopeId())); return txManager.execute(tx -> { if (deviceConnectionOptions.getReservedUserId() != null) { final KapuaQuery query = new KapuaQuery(deviceConnectionOptions.getScopeId()); @@ -125,7 +122,7 @@ public DeviceConnectionOption find(KapuaId scopeId, KapuaId entityId) ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(entityId, "entityId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.read, scopeId)); return txManager.execute(tx -> repository.find(tx, scopeId, entityId)) .orElse(null); @@ -137,7 +134,7 @@ public DeviceConnectionOptionListResult query(KapuaQuery query) // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); return txManager.execute(tx -> repository.query(tx, query)); } @@ -148,7 +145,7 @@ public long count(KapuaQuery query) // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_CONNECTION, Actions.read, query.getScopeId())); return txManager.execute(tx -> repository.count(tx, query)); } diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/event/internal/DeviceEventServiceImpl.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/event/internal/DeviceEventServiceImpl.java index a33666bf575..fbe847c3383 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/event/internal/DeviceEventServiceImpl.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/event/internal/DeviceEventServiceImpl.java @@ -12,6 +12,9 @@ *******************************************************************************/ package org.eclipse.kapua.service.device.registry.event.internal; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; @@ -20,7 +23,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.registry.Device; import org.eclipse.kapua.service.device.registry.DeviceRepository; import org.eclipse.kapua.service.device.registry.event.DeviceEvent; @@ -33,9 +36,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Inject; -import javax.inject.Singleton; - /** * {@link DeviceEventService} implementation. * @@ -51,7 +51,6 @@ public class DeviceEventServiceImpl private static final double MAX_WAIT = 200d; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final DeviceRepository deviceRepository; private final DeviceEventFactory entityFactory; @@ -60,13 +59,11 @@ public class DeviceEventServiceImpl @Inject public DeviceEventServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, DeviceRepository deviceRepository, DeviceEventFactory entityFactory, DeviceEventRepository deviceEventRepository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.deviceRepository = deviceRepository; this.entityFactory = entityFactory; @@ -84,7 +81,7 @@ public DeviceEvent create(DeviceEventCreator deviceEventCreator) throws KapuaExc ArgumentValidator.notNull(deviceEventCreator.getReceivedOn(), "deviceEventCreator.receivedOn"); ArgumentValidator.notEmptyOrNull(deviceEventCreator.getResource(), "deviceEventCreator.eventType"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_EVENT, Actions.write, deviceEventCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_EVENT, Actions.write, deviceEventCreator.getScopeId())); return txManager.execute(tx -> { // Check that device exists final Device device = deviceRepository.findForUpdate(tx, deviceEventCreator.getScopeId(), deviceEventCreator.getDeviceId()) @@ -104,7 +101,7 @@ public DeviceEvent create(DeviceEventCreator deviceEventCreator) throws KapuaExc final DeviceEvent created = repository.create(tx, newEvent); device.setLastEventId(created.getId()); //Do not call update explicitly, the transaction ending will automatically update the entity -// deviceRepository.update(tx, device, device); + // deviceRepository.update(tx, device, device); return newEvent; }); @@ -117,7 +114,7 @@ public DeviceEvent find(KapuaId scopeId, KapuaId entityId) ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(entityId, "entityId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_EVENT, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_EVENT, Actions.read, scopeId)); return txManager.execute(tx -> repository.find(tx, scopeId, entityId)) .orElse(null); @@ -129,7 +126,7 @@ public DeviceEventListResult query(KapuaQuery query) // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_EVENT, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_EVENT, Actions.read, query.getScopeId())); return txManager.execute(tx -> repository.query(tx, query)); } @@ -140,7 +137,7 @@ public long count(KapuaQuery query) // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_EVENT, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.DEVICE_EVENT, Actions.read, query.getScopeId())); return txManager.execute(tx -> repository.count(tx, query)); } @@ -152,7 +149,7 @@ public void delete(KapuaId scopeId, KapuaId deviceEventId) throws KapuaException ArgumentValidator.notNull(scopeId, "deviceEvent.scopeId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DEVICE_EVENT, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.DEVICE_EVENT, Actions.delete, scopeId)); txManager.execute(tx -> repository.delete(tx, scopeId, deviceEventId)); } diff --git a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/internal/DeviceRegistryServiceImpl.java b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/internal/DeviceRegistryServiceImpl.java index 1c0c5ce75be..6d0340c9078 100644 --- a/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/internal/DeviceRegistryServiceImpl.java +++ b/service/device/registry/internal/src/main/java/org/eclipse/kapua/service/device/registry/internal/DeviceRegistryServiceImpl.java @@ -27,7 +27,6 @@ import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.access.GroupQueryHelper; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.Device; import org.eclipse.kapua.service.device.registry.DeviceAttributes; import org.eclipse.kapua.service.device.registry.DeviceCreator; @@ -62,13 +61,12 @@ public class DeviceRegistryServiceImpl public DeviceRegistryServiceImpl( @Named("DeviceRegistryServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("DeviceRegistryTransactionManager") TxManager txManager, DeviceRepository deviceRepository, DeviceFactory entityFactory, GroupQueryHelper groupQueryHelper, EventStorer eventStorer, DeviceValidation deviceValidation) { - super(txManager, serviceConfigurationManager, Domains.DEVICE, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.DEVICE, authorizationService); this.deviceRepository = deviceRepository; this.entityFactory = entityFactory; this.groupQueryHelper = groupQueryHelper; diff --git a/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/AclCreator.java b/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/AclCreator.java index 6e14ad473af..c1263ca1ef0 100644 --- a/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/AclCreator.java +++ b/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/AclCreator.java @@ -37,7 +37,6 @@ import org.eclipse.kapua.service.authorization.access.AccessInfoCreator; import org.eclipse.kapua.service.authorization.access.AccessInfoService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.user.User; import org.eclipse.kapua.service.user.UserCreator; import org.eclipse.kapua.service.user.UserService; @@ -59,7 +58,6 @@ public class AclCreator { * Credential service. */ private CredentialService credentialService; - private PermissionFactory permissionFactory; /** * User service. @@ -89,7 +87,6 @@ public AclCreator() { accessInfoService = locator.getService(AccessInfoService.class); credentialService = locator.getService(CredentialService.class); - permissionFactory = locator.getFactory(PermissionFactory.class); } /** @@ -188,7 +185,7 @@ private AccessInfoCreator accessInfoCreatorCreator(List permissio targetScopeId = (KapuaEid) account.getId(); } String domain = permissionData.getDomain(); - Permission permission = permissionFactory.newPermission(domain, action, targetScopeId); + Permission permission = new Permission(domain, action, targetScopeId); permissions.add(permission); } accessInfoCreator.setPermissions(permissions); diff --git a/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java b/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java index a407e1b6841..8f419caf5de 100644 --- a/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java +++ b/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java @@ -47,7 +47,6 @@ import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.group.GroupService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.authentication.UserPassDeviceConnectionCredentialAdapter; import org.eclipse.kapua.service.device.authentication.api.DeviceConnectionCredentialAdapter; import org.eclipse.kapua.service.device.registry.DeviceFactory; @@ -115,9 +114,6 @@ protected void configure() { // Inject mocked Authorization Service method checkPermission AuthorizationService mockedAuthorization = Mockito.mock(AuthorizationService.class); - // Inject mocked Permission Factory - final PermissionFactory permissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(permissionFactory); try { Mockito.doNothing().when(mockedAuthorization).checkPermission(Matchers.any(Permission.class)); } catch (KapuaException e) { @@ -150,7 +146,6 @@ protected void configure() { final DeviceConnectionService deviceConnectionService = new DeviceConnectionServiceImpl( Mockito.mock(ServiceConfigurationManager.class), mockedAuthorization, - permissionFactory, new DeviceConnectionFactoryImpl(), txManager, new DeviceConnectionImplJpaRepository(jpaRepoConfig), @@ -164,7 +159,6 @@ protected void configure() { bind(DeviceEventRepository.class).toInstance(new DeviceEventImplJpaRepository(jpaRepoConfig)); final DeviceEventService deviceEventService = new DeviceEventServiceImpl( mockedAuthorization, - permissionFactory, txManager, new DeviceImplJpaRepository(jpaRepoConfig), new DeviceEventFactoryImpl(), @@ -178,13 +172,11 @@ protected void configure() { new KapuaDeviceRegistrySettings().getInt(KapuaDeviceRegistrySettingKeys.DEVICE_LIFECYCLE_BIRTH_VAR_FIELDS_LENGTH_MAX), new KapuaDeviceRegistrySettings().getInt(KapuaDeviceRegistrySettingKeys.DEVICE_LIFECYCLE_BIRTH_EXTENDED_PROPERTIES_LENGTH_MAX), mockedAuthorization, - permissionFactory, Mockito.mock(GroupService.class), deviceConnectionService, deviceEventService, new DeviceImplJpaRepository(jpaRepoConfig), new TagServiceImpl( - permissionFactory, mockedAuthorization, Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-tag"), @@ -196,7 +188,6 @@ protected void configure() { bind(DeviceRegistryService.class).toInstance(new DeviceRegistryServiceImpl( Mockito.mock(ServiceConfigurationManager.class), mockedAuthorization, - permissionFactory, txManager, new DeviceImplJpaRepository(jpaRepoConfig), new DeviceFactoryImpl(), diff --git a/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointInfoServiceImpl.java b/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointInfoServiceImpl.java index 2756df06959..fa1b086525d 100644 --- a/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointInfoServiceImpl.java +++ b/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointInfoServiceImpl.java @@ -38,11 +38,10 @@ import org.eclipse.kapua.service.account.Account; import org.eclipse.kapua.service.account.AccountService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.endpoint.EndpointInfo; import org.eclipse.kapua.service.endpoint.EndpointInfoAttributes; import org.eclipse.kapua.service.endpoint.EndpointInfoCreator; -import org.eclipse.kapua.service.endpoint.EndpointInfoFactory; import org.eclipse.kapua.service.endpoint.EndpointInfoListResult; import org.eclipse.kapua.service.endpoint.EndpointInfoQuery; import org.eclipse.kapua.service.endpoint.EndpointInfoRepository; @@ -60,8 +59,6 @@ public class EndpointInfoServiceImpl implements EndpointInfoService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; - private final EndpointInfoFactory endpointInfoFactory; private final EndpointInfoRepository repository; private final AccountService accountService; private final TxManager txManager; @@ -70,14 +67,10 @@ public class EndpointInfoServiceImpl public EndpointInfoServiceImpl( AccountService accountService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, - EndpointInfoFactory endpointInfoFactory, EndpointInfoRepository endpointInfoRepository, TxManager txManager) { this.accountService = accountService; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; - this.endpointInfoFactory = endpointInfoFactory; this.repository = endpointInfoRepository; this.txManager = txManager; } @@ -108,7 +101,7 @@ public EndpointInfo create(EndpointInfoCreator endpointInfoCreator) KapuaId scopeIdPermission = endpointInfoCreator.getEndpointType().equals(EndpointInfo.ENDPOINT_TYPE_CORS) ? endpointInfoCreator.getScopeId() : null; authorizationService.checkPermission( - permissionFactory.newPermission(Domains.ENDPOINT_INFO, Actions.write, scopeIdPermission) + new Permission(Domains.ENDPOINT_INFO, Actions.write, scopeIdPermission) ); // Check duplicate endpoint checkDuplicateEndpointInfo( @@ -150,7 +143,7 @@ public EndpointInfo update(EndpointInfo endpointInfo) throws KapuaException { KapuaId scopeIdPermission = endpointInfo.getEndpointType().equals(EndpointInfo.ENDPOINT_TYPE_CORS) ? endpointInfo.getScopeId() : null; authorizationService.checkPermission( - permissionFactory.newPermission(Domains.ENDPOINT_INFO, Actions.write, scopeIdPermission) + new Permission(Domains.ENDPOINT_INFO, Actions.write, scopeIdPermission) ); // Check duplicate endpoint checkDuplicateEndpointInfo( @@ -180,7 +173,7 @@ public void delete(KapuaId scopeId, KapuaId endpointInfoId) throws KapuaExceptio } authorizationService.checkPermission( - permissionFactory.newPermission(Domains.ENDPOINT_INFO, Actions.delete, scopeIdPermission) + new Permission(Domains.ENDPOINT_INFO, Actions.delete, scopeIdPermission) ); // Do delete return repository.delete(tx, scopeId, endpointInfoId); @@ -195,7 +188,7 @@ public EndpointInfo find(KapuaId scopeId, KapuaId endpointInfoId) // Check Access return txManager.execute(tx -> { authorizationService.checkPermission( - permissionFactory.newPermission(Domains.ENDPOINT_INFO, Actions.read, scopeId) + new Permission(Domains.ENDPOINT_INFO, Actions.read, scopeId) ); EndpointInfo endpointInfoToFind = repository.find(tx, KapuaId.ANY, endpointInfoId) .orElseThrow(() -> new KapuaEntityNotFoundException(EndpointInfo.TYPE, endpointInfoId)); // search the endpoint in any scope @@ -233,7 +226,7 @@ private Long doCount(TxContext txContext, KapuaQuery query, String section) thro ArgumentValidator.notNull(query, "query"); // Check Access authorizationService.checkPermission( - permissionFactory.newPermission(Domains.ENDPOINT_INFO, Actions.read, query.getScopeId()) + new Permission(Domains.ENDPOINT_INFO, Actions.read, query.getScopeId()) ); return traverse( txContext, @@ -258,7 +251,7 @@ private EndpointInfoListResult doQuery(TxContext tx, KapuaQuery query, String se // // Check Access authorizationService.checkPermission( - permissionFactory.newPermission(Domains.ENDPOINT_INFO, Actions.read, query.getScopeId()) + new Permission(Domains.ENDPOINT_INFO, Actions.read, query.getScopeId()) ); return traverse( tx, diff --git a/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointModule.java b/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointModule.java index b4d2fac80db..e6a9c925be1 100644 --- a/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointModule.java +++ b/service/endpoint/internal/src/main/java/org/eclipse/kapua/service/endpoint/internal/EndpointModule.java @@ -12,9 +12,6 @@ *******************************************************************************/ package org.eclipse.kapua.service.endpoint.internal; -import com.google.inject.Provides; -import com.google.inject.Singleton; -import com.google.inject.multibindings.ProvidesIntoSet; import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; @@ -24,12 +21,16 @@ import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.account.AccountService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.endpoint.EndpointInfoFactory; import org.eclipse.kapua.service.endpoint.EndpointInfoRepository; import org.eclipse.kapua.service.endpoint.EndpointInfoService; +import com.google.inject.Provides; +import com.google.inject.Singleton; +import com.google.inject.multibindings.ProvidesIntoSet; + public class EndpointModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(EndpointInfoFactory.class).to(EndpointInfoFactoryImpl.class); @@ -39,16 +40,12 @@ protected void configureModule() { @Singleton EndpointInfoService endpointInfoService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, - EndpointInfoFactory endpointInfoFactory, AccountService accountService, EndpointInfoRepository endpointInfoRepository, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new EndpointInfoServiceImpl( accountService, authorizationService, - permissionFactory, - endpointInfoFactory, endpointInfoRepository, jpaTxManagerFactory.create("kapua-endpoint")); } diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionModule.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionModule.java index 8c98203efa0..ca31e80a6b8 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionModule.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.job.execution.internal; -import com.google.inject.Provides; +import javax.inject.Named; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.job.execution.JobExecutionFactory; import org.eclipse.kapua.service.job.execution.JobExecutionRepository; import org.eclipse.kapua.service.job.execution.JobExecutionService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Named; -import javax.inject.Singleton; +import com.google.inject.Provides; public class JobExecutionModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(JobExecutionFactory.class).to(JobExecutionFactoryImpl.class); @@ -35,12 +36,10 @@ protected void configureModule() { @Singleton JobExecutionService jobExecutionService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("jobTxManager") TxManager txManager, JobExecutionRepository jobExecutionRepository) { return new JobExecutionServiceImpl( authorizationService, - permissionFactory, txManager, jobExecutionRepository); } diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java index 320d92548ac..88725a2a373 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service.job.execution.internal; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; @@ -19,7 +21,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.job.execution.JobExecution; import org.eclipse.kapua.service.job.execution.JobExecutionCreator; import org.eclipse.kapua.service.job.execution.JobExecutionListResult; @@ -27,8 +29,6 @@ import org.eclipse.kapua.service.job.execution.JobExecutionService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Singleton; - /** * {@link JobExecutionService} implementation * @@ -38,17 +38,14 @@ public class JobExecutionServiceImpl implements JobExecutionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final JobExecutionRepository jobExecutionRepository; public JobExecutionServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, JobExecutionRepository jobExecutionRepository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.jobExecutionRepository = jobExecutionRepository; } @@ -59,7 +56,7 @@ public JobExecution create(JobExecutionCreator jobExecutionCreator) throws Kapua ArgumentValidator.notNull(jobExecutionCreator, "jobExecutionCreator"); ArgumentValidator.notNull(jobExecutionCreator.getScopeId(), "jobExecutionCreator.scopeId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, jobExecutionCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, jobExecutionCreator.getScopeId())); JobExecution jobExecution = new JobExecutionImpl(jobExecutionCreator.getScopeId()); jobExecution.setJobId(jobExecutionCreator.getJobId()); jobExecution.setStartedOn(jobExecutionCreator.getStartedOn()); @@ -75,7 +72,7 @@ public JobExecution update(JobExecution jobExecution) throws KapuaException { ArgumentValidator.notNull(jobExecution, "jobExecution"); ArgumentValidator.notNull(jobExecution.getScopeId(), "jobExecution.scopeId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, jobExecution.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, jobExecution.getScopeId())); return txManager.execute(tx -> jobExecutionRepository.update(tx, jobExecution)); } @@ -86,7 +83,7 @@ public JobExecution find(KapuaId scopeId, KapuaId jobExecutionId) throws KapuaEx ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobExecutionId, "jobExecutionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); // Do find return txManager.execute(tx -> jobExecutionRepository.find(tx, scopeId, jobExecutionId)) .orElse(null); @@ -97,7 +94,7 @@ public JobExecutionListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobExecutionRepository.query(tx, query)); } @@ -108,7 +105,7 @@ public long countByJobId(KapuaId scopeId, KapuaId jobId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobId, "jobId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); // Do find return txManager.execute(tx -> jobExecutionRepository.countByJobId(tx, scopeId, jobId)); } @@ -118,7 +115,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobExecutionRepository.count(tx, query)); } @@ -129,7 +126,7 @@ public void delete(KapuaId scopeId, KapuaId jobExecutionId) throws KapuaExceptio ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobExecutionId, "jobExecutionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, scopeId)); // Do delete txManager.execute(tx -> jobExecutionRepository.delete(tx, scopeId, jobExecutionId)); } diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobModule.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobModule.java index cdad5542407..266636c63a4 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobModule.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobModule.java @@ -34,7 +34,6 @@ import org.eclipse.kapua.model.domain.Domain; import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.job.JobFactory; import org.eclipse.kapua.service.job.JobRepository; import org.eclipse.kapua.service.job.JobService; @@ -70,7 +69,6 @@ TxManager jobTxManager( JobService jobService( @Named("JobServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, JobEngineService jobEngineService, - PermissionFactory permissionFactory, AuthorizationService authorizationService, @Named("jobTxManager") TxManager txManager, JobRepository jobRepository, @@ -79,7 +77,6 @@ JobService jobService( return new JobServiceImpl( serviceConfigurationManager, jobEngineService, - permissionFactory, authorizationService, txManager, jobRepository, diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobServiceImpl.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobServiceImpl.java index 2eae0dc119d..3d5b0b88b1b 100755 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobServiceImpl.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/internal/JobServiceImpl.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service.job.internal; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaDuplicateNameException; import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; @@ -26,7 +28,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.job.Job; import org.eclipse.kapua.service.job.JobCreator; import org.eclipse.kapua.service.job.JobListResult; @@ -37,8 +39,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; - /** * {@link JobService} implementation * @@ -56,21 +56,21 @@ public class JobServiceImpl extends KapuaConfigurableServiceBase implements JobS /** * Default constructor for injection * - * @param permissionFactory The {@link PermissionFactory} instance - * @param authorizationService The {@link AuthorizationService} instance + * @param authorizationService + * The {@link AuthorizationService} instance * @param jobRepository - * @param triggerService The {@link TriggerService} instance + * @param triggerService + * The {@link TriggerService} instance * @since 2.0.0 */ public JobServiceImpl( ServiceConfigurationManager serviceConfigurationManager, JobEngineService jobEngineService, - PermissionFactory permissionFactory, AuthorizationService authorizationService, TxManager txManager, JobRepository jobRepository, TriggerService triggerService) { - super(txManager, serviceConfigurationManager, Domains.JOB, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.JOB, authorizationService); this.jobEngineService = jobEngineService; this.jobRepository = jobRepository; this.triggerService = triggerService; @@ -83,7 +83,7 @@ public Job create(JobCreator creator) throws KapuaException { ArgumentValidator.notNull(creator.getScopeId(), "jobCreator.scopeId"); ArgumentValidator.validateEntityName(creator.getName(), "jobCreator.name"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, creator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, creator.getScopeId())); return txManager.execute(tx -> { // Check entity limit serviceConfigurationManager.checkAllowedEntities(tx, creator.getScopeId(), "Jobs"); @@ -107,7 +107,7 @@ public Job update(Job job) throws KapuaException { ArgumentValidator.notNull(job.getScopeId(), "job.scopeId"); ArgumentValidator.validateEntityName(job.getName(), "job.name"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, job.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, job.getScopeId())); return txManager.execute(tx -> { // Check existence @@ -129,7 +129,7 @@ public Job find(KapuaId scopeId, KapuaId jobId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); // Do find return txManager.execute(tx -> jobRepository.find(tx, scopeId, jobId)) .orElse(null); @@ -140,7 +140,7 @@ public JobListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobRepository.query(tx, query)); } @@ -150,7 +150,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobRepository.count(tx, query)); } @@ -169,13 +169,17 @@ public void deleteForced(KapuaId scopeId, KapuaId jobId) throws KapuaException { /** * Deletes the {@link Job} like {@link #delete(KapuaId, KapuaId)}. *

    - * If {@code forced} is {@code true} {@link org.eclipse.kapua.service.authorization.permission.Permission} checked will be {@code job:delete:null}, - * and when invoking {@link JobEngineService#cleanJobData(KapuaId, KapuaId)} any exception is logged and ignored. + * If {@code forced} is {@code true} {@link org.eclipse.kapua.service.authorization.permission.Permission} checked will be {@code job:delete:null}, and when invoking + * {@link JobEngineService#cleanJobData(KapuaId, KapuaId)} any exception is logged and ignored. * - * @param scopeId The {@link KapuaId} scopeId of the {@link Job}. - * @param jobId The {@link KapuaId} of the {@link Job}. - * @param forced Whether or not the {@link Job} must be forcibly deleted. - * @throws KapuaException In case something bad happens. + * @param scopeId + * The {@link KapuaId} scopeId of the {@link Job}. + * @param jobId + * The {@link KapuaId} of the {@link Job}. + * @param forced + * Whether or not the {@link Job} must be forcibly deleted. + * @throws KapuaException + * In case something bad happens. * @since 1.1.0 */ private void deleteInternal(KapuaId scopeId, KapuaId jobId, boolean forced) throws KapuaException { @@ -183,7 +187,7 @@ private void deleteInternal(KapuaId scopeId, KapuaId jobId, boolean forced) thro ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, forced ? null : scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, forced ? null : scopeId)); txManager.execute(tx -> { // Check existence diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionModule.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionModule.java index 74ae4c7c3be..44908947471 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionModule.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionModule.java @@ -12,20 +12,21 @@ *******************************************************************************/ package org.eclipse.kapua.service.job.step.definition.internal; -import com.google.inject.Provides; +import javax.inject.Inject; +import javax.inject.Named; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.job.step.definition.JobStepDefinitionFactory; import org.eclipse.kapua.service.job.step.definition.JobStepDefinitionRepository; import org.eclipse.kapua.service.job.step.definition.JobStepDefinitionService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Inject; -import javax.inject.Named; +import com.google.inject.Provides; public class JobStepDefinitionModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(JobStepDefinitionFactory.class).to(JobStepDefinitionFactoryImpl.class); @@ -38,12 +39,10 @@ protected void configureModule() { @Inject JobStepDefinitionService jobStepDefinitionService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("jobTxManager") TxManager txManager, JobStepDefinitionRepository repository) { return new JobStepDefinitionServiceImpl( authorizationService, - permissionFactory, txManager, repository ); diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionServiceImpl.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionServiceImpl.java index e61c9d03a2b..f8f332650d2 100755 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionServiceImpl.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/definition/internal/JobStepDefinitionServiceImpl.java @@ -24,7 +24,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.job.step.definition.JobStepDefinition; import org.eclipse.kapua.service.job.step.definition.JobStepDefinitionAttributes; import org.eclipse.kapua.service.job.step.definition.JobStepDefinitionCreator; @@ -43,17 +43,14 @@ public class JobStepDefinitionServiceImpl implements JobStepDefinitionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final JobStepDefinitionRepository repository; public JobStepDefinitionServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, JobStepDefinitionRepository repository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.repository = repository; } @@ -67,7 +64,7 @@ public JobStepDefinition create(JobStepDefinitionCreator stepDefinitionCreator) ArgumentValidator.validateEntityName(stepDefinitionCreator.getName(), "stepDefinitionCreator.name"); ArgumentValidator.notEmptyOrNull(stepDefinitionCreator.getProcessorName(), "stepDefinitionCreator.processorName"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); return txManager.execute(tx -> { // Check duplicate name @@ -99,7 +96,7 @@ public JobStepDefinition update(JobStepDefinition jobStepDefinition) throws Kapu ArgumentValidator.notEmptyOrNull(jobStepDefinition.getProcessorName(), "jobStepDefinition.processorName"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); return txManager.execute(tx -> { // Check duplicate name @@ -119,7 +116,7 @@ public JobStepDefinition find(KapuaId scopeId, KapuaId stepDefinitionId) throws ArgumentValidator.notNull(stepDefinitionId, "stepDefinitionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); final JobStepDefinitionQuery query = new JobStepDefinitionQuery(scopeId); query.setPredicate(query.attributePredicate(JobStepDefinitionAttributes.ENTITY_ID, stepDefinitionId)); @@ -138,7 +135,7 @@ public JobStepDefinition findByName(String name) throws KapuaException { Optional jobStepDefinition = repository.findByName(tx, name); if (jobStepDefinition.isPresent()) { // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, jobStepDefinition.get().getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, jobStepDefinition.get().getScopeId())); } return jobStepDefinition; }).orElse(null); @@ -149,7 +146,7 @@ public JobStepDefinitionListResult query(KapuaQuery query) throws KapuaException // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.query(tx, query)); } @@ -159,7 +156,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> repository.count(tx, query)); } @@ -170,7 +167,7 @@ public void delete(KapuaId scopeId, KapuaId stepDefinitionId) throws KapuaExcept ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(stepDefinitionId, "stepDefinitionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, null)); // Do delete txManager.execute(tx -> repository.delete(tx, scopeId, stepDefinitionId)); } diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepModule.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepModule.java index ae0070d5bbc..bfaab7faa88 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepModule.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepModule.java @@ -19,8 +19,6 @@ import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.util.xml.XmlUtil; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; -import org.eclipse.kapua.service.job.execution.JobExecutionFactory; import org.eclipse.kapua.service.job.execution.JobExecutionService; import org.eclipse.kapua.service.job.step.JobStepFactory; import org.eclipse.kapua.service.job.step.JobStepRepository; @@ -46,21 +44,17 @@ JobStepRepository jobStepRepository(KapuaJpaRepositoryConfiguration jpaRepoConfi @Provides @Singleton JobStepService jobStepService(AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("jobTxManager") TxManager txManager, JobStepRepository jobStepRepository, JobStepFactory jobStepFactory, JobExecutionService jobExecutionService, - JobExecutionFactory jobExecutionFactory, JobStepDefinitionRepository jobStepDefinitionRepository, XmlUtil xmlUtil) { return new JobStepServiceImpl(authorizationService, - permissionFactory, txManager, jobStepRepository, jobStepFactory, jobExecutionService, - jobExecutionFactory, jobStepDefinitionRepository, xmlUtil ); diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepServiceImpl.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepServiceImpl.java index f811249472f..e5606f66bd8 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepServiceImpl.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/step/internal/JobStepServiceImpl.java @@ -33,10 +33,9 @@ import org.eclipse.kapua.model.query.SortOrder; import org.eclipse.kapua.model.query.predicate.AttributePredicate.Operator; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.job.exception.CannotModifyJobStepsException; import org.eclipse.kapua.service.job.execution.JobExecutionAttributes; -import org.eclipse.kapua.service.job.execution.JobExecutionFactory; import org.eclipse.kapua.service.job.execution.JobExecutionQuery; import org.eclipse.kapua.service.job.execution.JobExecutionService; import org.eclipse.kapua.service.job.internal.settings.JobServiceSettingKeys; @@ -67,32 +66,26 @@ public class JobStepServiceImpl implements JobStepService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final JobStepRepository jobStepRepository; private final JobStepFactory jobStepFactory; private final JobExecutionService jobExecutionService; - private final JobExecutionFactory jobExecutionFactory; private final JobStepDefinitionRepository jobStepDefinitionRepository; private final XmlUtil xmlUtil; public JobStepServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, JobStepRepository jobStepRepository, JobStepFactory jobStepFactory, JobExecutionService jobExecutionService, - JobExecutionFactory jobExecutionFactory, JobStepDefinitionRepository jobStepDefinitionRepository, XmlUtil xmlUtil) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.jobStepRepository = jobStepRepository; this.jobStepFactory = jobStepFactory; this.jobExecutionService = jobExecutionService; - this.jobExecutionFactory = jobExecutionFactory; this.jobStepDefinitionRepository = jobStepDefinitionRepository; this.xmlUtil = xmlUtil; } @@ -125,7 +118,7 @@ public JobStep create(JobStepCreator jobStepCreator) throws KapuaException { ArgumentValidator.numRange(jobStepCreator.getDescription().length(), 0, 8192, "jobStepCreator.description"); } // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, jobStepCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, jobStepCreator.getScopeId())); return txManager.execute(tx -> { // Check job step definition @@ -211,7 +204,7 @@ public JobStep update(JobStep jobStep) throws KapuaException { ArgumentValidator.numRange(jobStep.getDescription().length(), 0, 8192, "jobStep.description"); } // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, jobStep.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, jobStep.getScopeId())); return txManager.execute(tx -> { // Check existence @@ -278,7 +271,7 @@ public JobStep find(KapuaId scopeId, KapuaId jobStepId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobStepId, "jobStepId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, scopeId)); // Do find return txManager.execute(tx -> jobStepRepository.find(tx, scopeId, jobStepId)) .orElse(null); @@ -289,7 +282,7 @@ public JobStepListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobStepRepository.query(tx, query)); } @@ -299,7 +292,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobStepRepository.count(tx, query)); } @@ -310,7 +303,7 @@ public void delete(KapuaId scopeId, KapuaId jobStepId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobStepId, "jobStepId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, scopeId)); txManager.execute(tx -> { // Check existence @@ -354,7 +347,7 @@ public void delete(KapuaId scopeId, KapuaId jobStepId) throws KapuaException { @Override public int getJobStepPropertyMaxLength() throws KapuaException { // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, KapuaId.ANY)); // Return the value return jobStepPropertyValueLengthMax; diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetServiceImpl.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetServiceImpl.java index 5d53cfdc278..22a43e02bd1 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetServiceImpl.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetServiceImpl.java @@ -28,7 +28,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.job.Job; import org.eclipse.kapua.service.job.JobRepository; import org.eclipse.kapua.service.job.targets.JobTarget; @@ -50,7 +50,6 @@ public class JobTargetServiceImpl implements JobTargetService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final JobTargetRepository jobTargetRepository; private final JobTargetFactory jobTargetFactory; @@ -58,12 +57,10 @@ public class JobTargetServiceImpl implements JobTargetService { public JobTargetServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, JobTargetRepository jobTargetRepository, JobTargetFactory jobTargetFactory, JobRepository jobRepository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.jobTargetRepository = jobTargetRepository; this.jobTargetFactory = jobTargetFactory; @@ -78,7 +75,7 @@ public JobTarget create(JobTargetCreator jobTargetCreator) throws KapuaException ArgumentValidator.notNull(jobTargetCreator.getJobId(), "jobTargetCreator.jobId"); ArgumentValidator.notNull(jobTargetCreator.getJobTargetId(), "jobTargetCreator.jobTargetId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, jobTargetCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, jobTargetCreator.getScopeId())); return txManager.execute(tx -> { // Check Job Existing final Job job = jobRepository.find(tx, jobTargetCreator.getScopeId(), jobTargetCreator.getJobId()) @@ -118,7 +115,7 @@ public JobTarget find(KapuaId scopeId, KapuaId jobTargetId) throws KapuaExceptio ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobTargetId, "jobTargetId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, scopeId)); // Do find return txManager.execute(tx -> jobTargetRepository.find(tx, scopeId, jobTargetId)) .orElse(null); @@ -129,7 +126,7 @@ public JobTargetListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobTargetRepository.query(tx, query)); } @@ -139,7 +136,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> jobTargetRepository.count(tx, query)); } @@ -153,7 +150,7 @@ public JobTarget update(JobTarget jobTarget) throws KapuaException { ArgumentValidator.notNull(jobTarget.getStepIndex(), "jobTarget.stepIndex"); ArgumentValidator.notNull(jobTarget.getStatus(), "jobTarget.status"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, jobTarget.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, jobTarget.getScopeId())); // Check existence return txManager.execute(tx -> { if (!jobTargetRepository.find(tx, jobTarget.getScopeId(), jobTarget.getId()).isPresent()) { @@ -170,7 +167,7 @@ public void delete(KapuaId scopeId, KapuaId jobTargetId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobTargetId, "jobTargetId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, scopeId)); // Do delete txManager.execute(tx -> jobTargetRepository.delete(tx, scopeId, jobTargetId)); } diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetsModule.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetsModule.java index 34613223746..1edd6681ac4 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetsModule.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/targets/internal/JobTargetsModule.java @@ -12,21 +12,22 @@ *******************************************************************************/ package org.eclipse.kapua.service.job.targets.internal; -import com.google.inject.Provides; +import javax.inject.Named; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.job.JobRepository; import org.eclipse.kapua.service.job.targets.JobTargetFactory; import org.eclipse.kapua.service.job.targets.JobTargetRepository; import org.eclipse.kapua.service.job.targets.JobTargetService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Named; -import javax.inject.Singleton; +import com.google.inject.Provides; public class JobTargetsModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(JobTargetFactory.class).to(JobTargetFactoryImpl.class); @@ -35,14 +36,12 @@ protected void configureModule() { @Provides @Singleton JobTargetService jobTargetService(AuthorizationService authorizationService, - PermissionFactory permissionFactory, - @Named("jobTxManager") TxManager txManager, - JobTargetRepository jobTargetRepository, - JobTargetFactory jobTargetFactory, - JobRepository jobRepository) { + @Named("jobTxManager") TxManager txManager, + JobTargetRepository jobTargetRepository, + JobTargetFactory jobTargetFactory, + JobRepository jobRepository) { return new JobTargetServiceImpl( authorizationService, - permissionFactory, txManager, jobTargetRepository, jobTargetFactory, diff --git a/service/job/test/src/test/java/org/eclipse/kapua/service/job/test/JobLocatorConfiguration.java b/service/job/test/src/test/java/org/eclipse/kapua/service/job/test/JobLocatorConfiguration.java index f6f88e84f1b..57000fe63ab 100644 --- a/service/job/test/src/test/java/org/eclipse/kapua/service/job/test/JobLocatorConfiguration.java +++ b/service/job/test/src/test/java/org/eclipse/kapua/service/job/test/JobLocatorConfiguration.java @@ -39,7 +39,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.job.JobFactory; import org.eclipse.kapua.service.job.JobService; import org.eclipse.kapua.service.job.execution.JobExecutionFactory; @@ -134,8 +133,6 @@ protected void configure() { } catch (Exception e) { LOG.warn("Error while setting mock AuthorizationService. This may lead to failures...", e); } - final PermissionFactory mockedPermissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(mockedPermissionFactory); // Job bind(JobFactory.class).toInstance(new JobFactoryImpl()); @@ -144,39 +141,34 @@ protected void configure() { bind(JobService.class).toInstance(new JobServiceImpl( Mockito.mock(ServiceConfigurationManager.class), Mockito.mock(JobEngineService.class), - mockedPermissionFactory, mockedAuthorization, txManager, new JobImplJpaRepository(jpaRepoConfig), - new TriggerServiceImpl(mockedAuthorization, mockedPermissionFactory, + new TriggerServiceImpl(mockedAuthorization, txManager, triggerImplJpaRepository, new TriggerFactoryImpl(), new TriggerDefinitionImplJpaRepository(jpaRepoConfig), new TriggerDefinitionFactoryImpl() ))); bind(JobStepDefinitionService.class).toInstance(new JobStepDefinitionServiceImpl( mockedAuthorization, - mockedPermissionFactory, txManager, new JobStepDefinitionImplJpaRepository(jpaRepoConfig) )); bind(JobStepDefinitionFactory.class).toInstance(new JobStepDefinitionFactoryImpl()); final JobExecutionImplJpaRepository jobExecutionRepository = new JobExecutionImplJpaRepository(jpaRepoConfig); - final JobExecutionService jobExecutionService = new JobExecutionServiceImpl(mockedAuthorization, mockedPermissionFactory, txManager, jobExecutionRepository); + final JobExecutionService jobExecutionService = new JobExecutionServiceImpl(mockedAuthorization, txManager, jobExecutionRepository); bind(JobStepService.class).toInstance(new JobStepServiceImpl( mockedAuthorization, - mockedPermissionFactory, txManager, new JobStepImplJpaRepository(jpaRepoConfig), new JobStepFactoryImpl(), jobExecutionService, - new JobExecutionFactoryImpl(), new JobStepDefinitionImplJpaRepository(jpaRepoConfig), new XmlUtil(new TestJAXBContextProvider()) )); bind(JobStepFactory.class).toInstance(new JobStepFactoryImpl()); bind(JobTargetService.class).toInstance(new JobTargetServiceImpl( mockedAuthorization, - mockedPermissionFactory, txManager, new JobTargetImplJpaRepository(jpaRepoConfig), new JobTargetFactoryImpl(), @@ -185,7 +177,6 @@ txManager, triggerImplJpaRepository, new TriggerFactoryImpl(), bind(JobTargetFactory.class).toInstance(new JobTargetFactoryImpl()); bind(JobExecutionService.class).toInstance(new JobExecutionServiceImpl( mockedAuthorization, - mockedPermissionFactory, txManager, jobExecutionRepository )); @@ -197,7 +188,6 @@ txManager, triggerImplJpaRepository, new TriggerFactoryImpl(), final TriggerFactoryImpl triggerFactory = new TriggerFactoryImpl(); bind(TriggerService.class).toInstance(new TriggerServiceImpl( mockedAuthorization, - mockedPermissionFactory, txManager, triggerImplJpaRepository, triggerFactory, @@ -207,7 +197,6 @@ txManager, triggerImplJpaRepository, new TriggerFactoryImpl(), bind(TriggerFactory.class).toInstance(triggerFactory); bind(TriggerDefinitionService.class).toInstance(new TriggerDefinitionServiceImpl( mockedAuthorization, - mockedPermissionFactory, txManager, triggerDefinitionRepository, triggerDefinitionFactory diff --git a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/SchedulerTriggerDefinitionModule.java b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/SchedulerTriggerDefinitionModule.java index dc359876a66..20819c62ae0 100644 --- a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/SchedulerTriggerDefinitionModule.java +++ b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/SchedulerTriggerDefinitionModule.java @@ -12,23 +12,23 @@ *******************************************************************************/ package org.eclipse.kapua.service.scheduler.trigger.definition.quartz; -import com.google.inject.Provides; -import com.google.inject.multibindings.ProvidesIntoSet; +import javax.inject.Named; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; -import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinition; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionFactory; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionRepository; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Named; -import javax.inject.Singleton; +import com.google.inject.Provides; +import com.google.inject.multibindings.ProvidesIntoSet; public class SchedulerTriggerDefinitionModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(TriggerDefinitionFactory.class).to(TriggerDefinitionFactoryImpl.class); @@ -38,14 +38,11 @@ protected void configureModule() { @Singleton TriggerDefinitionService triggerDefinitionService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("schedulerTxManager") TxManager txManager, TriggerDefinitionRepository triggerDefinitionRepository, - TriggerDefinitionFactory triggerDefinitionFactory, - KapuaJpaTxManagerFactory jpaTxManagerFactory) { + TriggerDefinitionFactory triggerDefinitionFactory) { return new TriggerDefinitionServiceImpl( authorizationService, - permissionFactory, txManager, triggerDefinitionRepository, triggerDefinitionFactory); @@ -57,7 +54,6 @@ TriggerDefinitionRepository triggerDefinitionRepository(KapuaJpaRepositoryConfig return new TriggerDefinitionImplJpaRepository(jpaRepoConfig); } - @ProvidesIntoSet public TriggerDefinition cronJobTriggerDefinition() { return new CronJobTriggerDefinition(); diff --git a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/TriggerDefinitionServiceImpl.java b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/TriggerDefinitionServiceImpl.java index d1f3e0b3538..a9bbb19ad21 100755 --- a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/TriggerDefinitionServiceImpl.java +++ b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/quartz/TriggerDefinitionServiceImpl.java @@ -12,6 +12,10 @@ *******************************************************************************/ package org.eclipse.kapua.service.scheduler.trigger.definition.quartz; +import java.util.Optional; + +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; @@ -21,7 +25,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinition; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionCreator; import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionFactory; @@ -30,9 +34,6 @@ import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Singleton; -import java.util.Optional; - /** * {@link TriggerDefinitionService} implementation. * @@ -42,19 +43,16 @@ public class TriggerDefinitionServiceImpl implements TriggerDefinitionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final TriggerDefinitionRepository triggerDefinitionRepository; private final TriggerDefinitionFactory triggerDefinitionFactory; public TriggerDefinitionServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, TriggerDefinitionRepository triggerDefinitionRepository, TriggerDefinitionFactory triggerDefinitionFactory) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.triggerDefinitionRepository = triggerDefinitionRepository; this.triggerDefinitionFactory = triggerDefinitionFactory; @@ -69,7 +67,7 @@ public TriggerDefinition create(TriggerDefinitionCreator triggerDefinitionCreato ArgumentValidator.validateEntityName(triggerDefinitionCreator.getName(), "triggerDefinitionCreator.name"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); // Do create TriggerDefinition toBeCreated = triggerDefinitionFactory.newEntity(triggerDefinitionCreator.getScopeId()); @@ -89,7 +87,7 @@ public TriggerDefinition update(TriggerDefinition triggerDefinition) throws Kapu ArgumentValidator.validateEntityName(triggerDefinition.getName(), "triggerDefinition.name"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); return txManager.execute(tx -> triggerDefinitionRepository.update(tx, triggerDefinition)); } @@ -99,7 +97,7 @@ public TriggerDefinition find(KapuaId stepDefinitionId) throws KapuaException { // Argument Validation ArgumentValidator.notNull(stepDefinitionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, KapuaId.ANY)); // Do find return txManager.execute(tx -> triggerDefinitionRepository.find(tx, KapuaId.ANY, stepDefinitionId)) .orElse(null); @@ -110,7 +108,7 @@ public TriggerDefinition find(KapuaId scopeId, KapuaId stepDefinitionId) throws // Argument Validation ArgumentValidator.notNull(stepDefinitionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, KapuaId.ANY)); // Do find return txManager.execute(tx -> triggerDefinitionRepository.find(tx, scopeId, stepDefinitionId)) .orElse(null); @@ -125,7 +123,7 @@ public TriggerDefinition findByName(String name) throws KapuaException { final Optional triggerDefinition = triggerDefinitionRepository.findByName(tx, name); if (triggerDefinition.isPresent()) { // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, KapuaId.ANY)); } return triggerDefinition; }) @@ -137,7 +135,7 @@ public TriggerDefinitionListResult query(KapuaQuery query) throws KapuaException // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, KapuaId.ANY)); // Do query return txManager.execute(tx -> triggerDefinitionRepository.query(tx, query)); } @@ -147,7 +145,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, KapuaId.ANY)); // Do query return txManager.execute(tx -> triggerDefinitionRepository.count(tx, query)); } @@ -158,7 +156,7 @@ public void delete(KapuaId scopeId, KapuaId stepDefinitionId) throws KapuaExcept ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(stepDefinitionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, null)); // Do delete txManager.execute(tx -> { final Optional toBeDeleted = triggerDefinitionRepository.find(tx, scopeId, stepDefinitionId); diff --git a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/FiredTriggerServiceImpl.java b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/FiredTriggerServiceImpl.java index 9de940d7afb..d38fef27efb 100755 --- a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/FiredTriggerServiceImpl.java +++ b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/FiredTriggerServiceImpl.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service.scheduler.trigger.fired.quartz; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; @@ -21,7 +23,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.scheduler.trigger.Trigger; import org.eclipse.kapua.service.scheduler.trigger.TriggerRepository; import org.eclipse.kapua.service.scheduler.trigger.fired.FiredTrigger; @@ -32,8 +34,6 @@ import org.eclipse.kapua.service.scheduler.trigger.fired.FiredTriggerService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Singleton; - /** * {@link FiredTriggerService} implementation. * @@ -43,7 +43,6 @@ public class FiredTriggerServiceImpl implements FiredTriggerService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final FiredTriggerRepository firedTriggerRepository; private final FiredTriggerFactory firedTriggerFactory; @@ -51,13 +50,11 @@ public class FiredTriggerServiceImpl implements FiredTriggerService { public FiredTriggerServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, FiredTriggerRepository firedTriggerRepository, FiredTriggerFactory firedTriggerFactory, TriggerRepository triggerRepository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.firedTriggerRepository = firedTriggerRepository; this.firedTriggerFactory = firedTriggerFactory; @@ -74,7 +71,7 @@ public FiredTrigger create(FiredTriggerCreator firedTriggerCreator) throws Kapua ArgumentValidator.notNull(firedTriggerCreator.getStatus(), "firedTriggerCreator.status"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.write, null)); return txManager.execute(tx -> { // Check existence of Trigger @@ -97,7 +94,7 @@ public FiredTrigger find(KapuaId scopeId, KapuaId firedTriggerId) throws KapuaEx // Argument Validation ArgumentValidator.notNull(firedTriggerId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, scopeId)); // Do find return txManager.execute(tx -> firedTriggerRepository.find(tx, scopeId, firedTriggerId)) .orElse(null); @@ -108,7 +105,7 @@ public FiredTriggerListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> firedTriggerRepository.query(tx, query)); } @@ -118,7 +115,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> firedTriggerRepository.count(tx, query)); } @@ -129,7 +126,7 @@ public void delete(KapuaId scopeId, KapuaId firedTriggerId) throws KapuaExceptio ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(firedTriggerId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.JOB, Actions.delete, null)); + authorizationService.checkPermission(new Permission(Domains.JOB, Actions.delete, null)); // Do delete txManager.execute(tx -> firedTriggerRepository.delete(tx, scopeId, firedTriggerId)); diff --git a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/SchedulerTriggerFiredModule.java b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/SchedulerTriggerFiredModule.java index 2a775022f14..4bff09a7622 100644 --- a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/SchedulerTriggerFiredModule.java +++ b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/quartz/SchedulerTriggerFiredModule.java @@ -12,22 +12,22 @@ *******************************************************************************/ package org.eclipse.kapua.service.scheduler.trigger.fired.quartz; -import com.google.inject.Provides; +import javax.inject.Named; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; -import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.scheduler.trigger.TriggerRepository; import org.eclipse.kapua.service.scheduler.trigger.fired.FiredTriggerFactory; import org.eclipse.kapua.service.scheduler.trigger.fired.FiredTriggerRepository; import org.eclipse.kapua.service.scheduler.trigger.fired.FiredTriggerService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Named; -import javax.inject.Singleton; +import com.google.inject.Provides; public class SchedulerTriggerFiredModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(FiredTriggerFactory.class).to(FiredTriggerFactoryImpl.class); @@ -37,15 +37,12 @@ protected void configureModule() { @Singleton FiredTriggerService firedTriggerService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("schedulerTxManager") TxManager txManager, FiredTriggerRepository firedTriggerRepository, FiredTriggerFactory firedTriggerFactory, - TriggerRepository triggerRepository, - KapuaJpaTxManagerFactory jpaTxManagerFactory) { + TriggerRepository triggerRepository) { return new FiredTriggerServiceImpl( authorizationService, - permissionFactory, txManager, firedTriggerRepository, firedTriggerFactory, diff --git a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/SchedulerQuartzModule.java b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/SchedulerQuartzModule.java index dc2ae84111f..ba22d5619cd 100644 --- a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/SchedulerQuartzModule.java +++ b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/SchedulerQuartzModule.java @@ -12,8 +12,9 @@ *******************************************************************************/ package org.eclipse.kapua.service.scheduler.trigger.quartz; -import com.google.inject.Provides; -import com.google.inject.multibindings.ProvidesIntoSet; +import javax.inject.Named; +import javax.inject.Singleton; + import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; @@ -22,7 +23,6 @@ import org.eclipse.kapua.model.domain.Domain; import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.scheduler.trigger.TriggerFactory; import org.eclipse.kapua.service.scheduler.trigger.TriggerRepository; import org.eclipse.kapua.service.scheduler.trigger.TriggerService; @@ -30,10 +30,11 @@ import org.eclipse.kapua.service.scheduler.trigger.definition.TriggerDefinitionRepository; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Named; -import javax.inject.Singleton; +import com.google.inject.Provides; +import com.google.inject.multibindings.ProvidesIntoSet; public class SchedulerQuartzModule extends AbstractKapuaModule { + @Override protected void configureModule() { bind(TriggerFactory.class).to(TriggerFactoryImpl.class); @@ -57,16 +58,13 @@ TxManager jobTxManager( @Singleton TriggerService triggerService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, @Named("schedulerTxManager") TxManager txManager, TriggerRepository triggerRepository, TriggerFactory triggerFactory, TriggerDefinitionRepository triggerDefinitionRepository, - TriggerDefinitionFactory triggerDefinitionFactory, - KapuaJpaTxManagerFactory jpaTxManagerFactory) { + TriggerDefinitionFactory triggerDefinitionFactory) { return new TriggerServiceImpl( authorizationService, - permissionFactory, txManager, triggerRepository, triggerFactory, diff --git a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/TriggerServiceImpl.java b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/TriggerServiceImpl.java index 74920b767bd..4346598b7b5 100755 --- a/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/TriggerServiceImpl.java +++ b/service/scheduler/quartz/src/main/java/org/eclipse/kapua/service/scheduler/trigger/quartz/TriggerServiceImpl.java @@ -32,7 +32,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.scheduler.exception.TriggerInvalidDatesException; import org.eclipse.kapua.service.scheduler.exception.TriggerInvalidSchedulingException; import org.eclipse.kapua.service.scheduler.quartz.driver.QuartzTriggerDriver; @@ -77,7 +77,6 @@ public class TriggerServiceImpl implements TriggerService { private TriggerDefinition cronJobTriggerDefinition; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final TriggerRepository triggerRepository; private final TriggerFactory triggerFactory; @@ -86,14 +85,12 @@ public class TriggerServiceImpl implements TriggerService { public TriggerServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, TriggerRepository triggerRepository, TriggerFactory triggerFactory, TriggerDefinitionRepository triggerDefinitionRepository, TriggerDefinitionFactory triggerDefinitionFactory) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.triggerRepository = triggerRepository; this.triggerFactory = triggerFactory; @@ -110,7 +107,7 @@ public Trigger create(TriggerCreator triggerCreator) throws KapuaException { ArgumentValidator.notNull(triggerCreator.getStartsOn(), "triggerCreator.startsOn"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.write, triggerCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.write, triggerCreator.getScopeId())); // Convert creator to new model. // To be removed after removing of TriggerCreator.cronScheduling and TriggerCreator.retryInterval @@ -198,7 +195,7 @@ public Trigger update(Trigger trigger) throws KapuaException { ArgumentValidator.validateEntityName(trigger.getName(), "trigger.name"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.write, trigger.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.write, trigger.getScopeId())); return txManager.execute(tx -> { // Check existence @@ -278,7 +275,7 @@ public void delete(KapuaId scopeId, KapuaId triggerId) throws KapuaException { ArgumentValidator.notNull(triggerId, "scopeId"); ArgumentValidator.notNull(scopeId, "triggerId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.delete, scopeId)); // Do delete QuartzTriggerDriver.deleteTrigger(txManager.execute(tx -> { @@ -293,7 +290,7 @@ public Trigger find(KapuaId scopeId, KapuaId triggerId) throws KapuaException { ArgumentValidator.notNull(triggerId, "triggerId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.read, scopeId)); // Do find return txManager.execute(tx -> { @@ -310,7 +307,7 @@ public TriggerListResult query(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.read, query.getScopeId())); return txManager.execute(tx -> { // Do query TriggerListResult triggers = triggerRepository.query(tx, query); @@ -329,7 +326,7 @@ public void deleteAllByJobId(KapuaId scopeId, KapuaId jobId) throws KapuaExcepti ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(jobId, "jobId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.delete, scopeId)); txManager.execute(tx -> { triggerRepository.deleteAllByJobId(tx, scopeId, jobId); return null; @@ -341,7 +338,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.SCHEDULER, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.SCHEDULER, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> triggerRepository.count(tx, query)); } diff --git a/service/scheduler/test/src/test/java/org/eclipse/kapua/service/scheduler/test/SchedulerLocatorConfiguration.java b/service/scheduler/test/src/test/java/org/eclipse/kapua/service/scheduler/test/SchedulerLocatorConfiguration.java index 5915750632f..aa3daf531b5 100644 --- a/service/scheduler/test/src/test/java/org/eclipse/kapua/service/scheduler/test/SchedulerLocatorConfiguration.java +++ b/service/scheduler/test/src/test/java/org/eclipse/kapua/service/scheduler/test/SchedulerLocatorConfiguration.java @@ -41,7 +41,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.job.JobFactory; import org.eclipse.kapua.service.job.JobService; import org.eclipse.kapua.service.job.internal.JobFactoryImpl; @@ -104,10 +103,6 @@ protected void configure() { bind(AuthorizationService.class).toInstance(mockedAuthorization); bind(KapuaJpaRepositoryConfiguration.class).toInstance(new KapuaJpaRepositoryConfiguration()); - // Inject mocked Permission Factory - final PermissionFactory permissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(permissionFactory); - // binding Account related services bind(AccountRelativeFinder.class).toInstance(Mockito.mock(AccountRelativeFinder.class)); bind(AccountService.class).toInstance(Mockito.mock(AccountService.class)); @@ -127,7 +122,6 @@ protected void configure() { final TriggerFactoryImpl triggerFactory = new TriggerFactoryImpl(); final TriggerServiceImpl triggerService = new TriggerServiceImpl( mockedAuthorization, - permissionFactory, schedulerTxManager, triggerRepository, triggerFactory, @@ -137,7 +131,6 @@ protected void configure() { bind(JobService.class).toInstance(new JobServiceImpl( Mockito.mock(ServiceConfigurationManager.class), new JobEngineServiceClient(new JobEngineClientSetting(), new XmlUtil(new TestJAXBContextProvider())), - permissionFactory, mockedAuthorization, new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-job"), jobRepository, @@ -147,7 +140,6 @@ protected void configure() { bind(TriggerFactory.class).toInstance(triggerFactory); bind(TriggerDefinitionService.class).toInstance(new TriggerDefinitionServiceImpl( mockedAuthorization, - permissionFactory, schedulerTxManager, triggerDefinitionRepository, triggerDefinitionFactory)); diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/Permission.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/Permission.java index d03f64a6814..c247488c585 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/Permission.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/Permission.java @@ -12,6 +12,10 @@ *******************************************************************************/ package org.eclipse.kapua.service.authorization.permission; +import java.util.Arrays; +import java.util.Collection; +import java.util.stream.Collectors; + import javax.security.auth.Subject; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -68,6 +72,10 @@ public Permission(String domain, Actions action, KapuaId targetScopeId) { this(domain, action, targetScopeId, null, false); } + public Permission(String domain, Actions action, KapuaId targetScopeId, KapuaId groupId) { + this(domain, action, targetScopeId, groupId, false); + } + public Permission(String domain, Actions action, KapuaId targetScopeId, KapuaId groupId, boolean forwardable) { this.domain = domain; this.action = action; @@ -76,6 +84,12 @@ public Permission(String domain, Actions action, KapuaId targetScopeId, KapuaId this.forwardable = forwardable; } + public static Collection newPermissions(String domain, KapuaId targetScopeId, Actions... actions) { + return Arrays.stream(actions) + .map(action -> new Permission(domain, action, targetScopeId, null, false)) + .collect(Collectors.toList()); + } + /** * Gets the domain on which the {@link Permission} gives access. * diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/PermissionFactory.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/PermissionFactory.java deleted file mode 100644 index a57c912bdca..00000000000 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/PermissionFactory.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Eurotech - initial API and implementation - * Red Hat Inc - *******************************************************************************/ -package org.eclipse.kapua.service.authorization.permission; - -import java.util.Arrays; -import java.util.Collection; -import java.util.stream.Collectors; - -import org.eclipse.kapua.model.KapuaObjectFactory; -import org.eclipse.kapua.model.domain.Actions; -import org.eclipse.kapua.model.domain.Domain; -import org.eclipse.kapua.model.id.KapuaId; -import org.eclipse.kapua.service.authorization.group.Group; - -/** - * {@link Permission} object factory. - */ -public interface PermissionFactory extends KapuaObjectFactory { - - /** - * Instantiate a new {@link Permission} implementing object with the provided parameters. - * - * @param domain - * The {@link Domain} of the new {@link Permission}. - * @param action - * The {@link Actions} of the new {@link Permission}. - * @param targetScopeId - * The target scope id of the new {@link Permission}. - * @return A instance of the implementing class of {@link Permission}. - */ - default Permission newPermission(String domain, Actions action, KapuaId targetScopeId) { - return newPermission(domain, action, targetScopeId, null); - } - - /** - * Instantiate a new {@link Permission} implementing object with the provided parameters. - * - * @param domain - * The {@link Domain} of the new {@link Permission}. - * @param action - * The {@link Actions} of the new {@link Permission}. - * @param targetScopeId - * The target scope id of the new {@link Permission}. - * @param groupId - * The {@link Group} id that this {@link Permission} gives access. - * @return A instance of the implementing class of {@link Permission}. - */ - default Permission newPermission(String domain, Actions action, KapuaId targetScopeId, KapuaId groupId) { - return newPermission(domain, action, targetScopeId, groupId, false); - } - - /** - * Instantiate a new {@link Permission} implementing object with the provided parameters. - * - * @param domain - * The {@link Domain} of the new {@link Permission}. - * @param action - * The {@link Actions} of the new {@link Permission}. - * @param targetScopeId - * The target scope id of the new {@link Permission}. - * @param groupId - * The {@link Group} id that this {@link Permission} gives access. - * @param forwardable - * If the {@link Permission} is forward-able to children scopeIds - * @return A instance of the implementing class of {@link Permission}. - */ - Permission newPermission(String domain, Actions action, KapuaId targetScopeId, KapuaId groupId, boolean forwardable); - - /** - * Instantiate new {@link Permission}s implementing object with the provided parameters. - * - * @param domain - * The {@link Domain} of the new {@link Permission}. - * @param targetScopeId - * The target scope id of the new {@link Permission}. - * @param actions - * The {@link Actions} of the new {@link Permission}s. - * @return A collection of instances of the implementing class of {@link Permission}. - */ - default Collection newPermissions(String domain, KapuaId targetScopeId, Actions... actions) { - return Arrays.stream(actions) - .map(action -> newPermission(domain, action, targetScopeId, null, false)) - .collect(Collectors.toList()); - } -} diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/PermissionXmlRegistry.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/PermissionXmlRegistry.java deleted file mode 100644 index 91b9a30a054..00000000000 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/permission/PermissionXmlRegistry.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Eurotech - initial API and implementation - *******************************************************************************/ -package org.eclipse.kapua.service.authorization.permission; - -import org.eclipse.kapua.locator.KapuaLocator; - -import javax.xml.bind.annotation.XmlRegistry; - -@XmlRegistry -public class PermissionXmlRegistry { - - private final PermissionFactory permissionFactory = KapuaLocator.getInstance().getFactory(PermissionFactory.class); - - /** - * Creates a new {@link Permission} instance - * - * @return A new {@link Permission} instance - * @since 1.0.0 - */ - public Permission newPermission() { - return permissionFactory.newPermission(null, null, null, null); - } -} diff --git a/service/security/certificate/internal/src/main/java/org/eclipse/kapua/service/certificate/internal/CertificateServiceImpl.java b/service/security/certificate/internal/src/main/java/org/eclipse/kapua/service/certificate/internal/CertificateServiceImpl.java index ed2da7249d9..7326729a2e6 100644 --- a/service/security/certificate/internal/src/main/java/org/eclipse/kapua/service/certificate/internal/CertificateServiceImpl.java +++ b/service/security/certificate/internal/src/main/java/org/eclipse/kapua/service/certificate/internal/CertificateServiceImpl.java @@ -30,10 +30,9 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.certificate.Certificate; import org.eclipse.kapua.service.certificate.CertificateCreator; -import org.eclipse.kapua.service.certificate.CertificateFactory; import org.eclipse.kapua.service.certificate.CertificateGenerator; import org.eclipse.kapua.service.certificate.CertificateListResult; import org.eclipse.kapua.service.certificate.CertificateService; @@ -57,19 +56,15 @@ public class CertificateServiceImpl implements CertificateService { private static final Logger LOG = LoggerFactory.getLogger(CertificateServiceImpl.class); private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; - private final CertificateFactory certificateFactory; private final KapuaCertificateSetting kapuaCertificateSetting; private String certificate; private String privateKey; private KapuaTocd emptyTocd; @Inject - public CertificateServiceImpl(AuthorizationService authorizationService, PermissionFactory permissionFactory, CertificateFactory certificateFactory, + public CertificateServiceImpl(AuthorizationService authorizationService, KapuaCertificateSetting kapuaCertificateSetting) throws KapuaException { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; - this.certificateFactory = certificateFactory; this.kapuaCertificateSetting = kapuaCertificateSetting; KapuaSecurityUtils.doPrivileged(() -> { String privateKeyPath = kapuaCertificateSetting.getString(KapuaCertificateSettingKeys.CERTIFICATE_JWT_PRIVATE_KEY); @@ -103,7 +98,7 @@ public CertificateListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CERTIFICATE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CERTIFICATE, Actions.read, query.getScopeId())); // Create the default certificate CertificateUsage jwtCertificateUsage = new CertificateUsageImpl("JWT"); Set certificateUsages = Sets.newHashSet(jwtCertificateUsage); diff --git a/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationModule.java b/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationModule.java index 0e895636403..075ff84d2bb 100644 --- a/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationModule.java +++ b/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationModule.java @@ -19,11 +19,8 @@ import org.eclipse.kapua.security.registration.RegistrationProcessorProvider; import org.eclipse.kapua.security.registration.simple.setting.SimpleSetting; import org.eclipse.kapua.service.account.AccountService; -import org.eclipse.kapua.service.authentication.credential.CredentialFactory; import org.eclipse.kapua.service.authentication.credential.CredentialService; -import org.eclipse.kapua.service.authorization.access.AccessInfoFactory; import org.eclipse.kapua.service.authorization.access.AccessInfoService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.user.UserService; @@ -42,22 +39,17 @@ RegistrationProcessorProvider simpleRegistrationProcessorProvider( SimpleSetting simpleSetting, AccountService accountService, CredentialService credentialService, - CredentialFactory credentialFactory, DeviceRegistryService deviceRegistryService, UserService userService, AccessInfoService accessInfoService, - AccessInfoFactory accessInfoFactory, - PermissionFactory permissionFactory, //Liquibase must start before this DatabaseCheckUpdate databaseCheckUpdate) { return new SimpleRegistrationProcessorProvider(simpleSetting, accountService, credentialService, - credentialFactory, deviceRegistryService, userService, - accessInfoService, - accessInfoFactory, - permissionFactory); + accessInfoService + ); } } diff --git a/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessor.java b/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessor.java index 6da9b56e498..314d37e1c70 100644 --- a/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessor.java +++ b/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessor.java @@ -41,7 +41,6 @@ import org.eclipse.kapua.service.authorization.access.AccessInfoCreator; import org.eclipse.kapua.service.authorization.access.AccessInfoService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.user.User; import org.eclipse.kapua.service.user.UserCreator; @@ -145,7 +144,6 @@ private static SimpleRegistrationProcessor.Settings applySimpleSettings(KapuaId private final AccessInfoService accessInfoService; - private final PermissionFactory permissionFactory; private final SimpleSetting simpleSetting; private final String claimName; @@ -159,7 +157,6 @@ private static SimpleRegistrationProcessor.Settings applySimpleSettings(KapuaId * @param deviceRegistryService * @param userService * @param accessInfoService - * @param permissionFactory * @param simpleSetting * @param claimName * the claim to use as account name @@ -172,7 +169,6 @@ public SimpleRegistrationProcessor( DeviceRegistryService deviceRegistryService, UserService userService, AccessInfoService accessInfoService, - PermissionFactory permissionFactory, SimpleSetting simpleSetting, String claimName, Settings settings) { @@ -181,7 +177,6 @@ public SimpleRegistrationProcessor( this.deviceRegistryService = deviceRegistryService; this.userService = userService; this.accessInfoService = accessInfoService; - this.permissionFactory = permissionFactory; this.simpleSetting = simpleSetting; this.claimName = claimName; this.settings = settings; @@ -277,18 +272,18 @@ private User createUser(String name, String email, String displayName, String su accessInfoCreator.setUserId(user.getId()); Set permissions = new HashSet<>(); - permissions.add(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, user.getScopeId())); - - permissions.addAll(permissionFactory.newPermissions(Domains.ACCOUNT, user.getScopeId(), Actions.read)); - permissions.addAll(permissionFactory.newPermissions(Domains.CREDENTIAL, user.getScopeId(), Actions.read, Actions.write, Actions.delete)); - permissions.addAll(permissionFactory.newPermissions(Domains.DATASTORE, user.getScopeId(), Actions.read)); - permissions.addAll(permissionFactory.newPermissions(Domains.DEVICE, user.getScopeId(), Actions.read, Actions.write, Actions.delete)); - permissions.addAll(permissionFactory.newPermissions(Domains.DEVICE_CONNECTION, user.getScopeId(), Actions.read)); - permissions.addAll(permissionFactory.newPermissions(Domains.DEVICE_EVENT, user.getScopeId(), Actions.read, Actions.write)); - permissions.addAll(permissionFactory.newPermissions(Domains.DEVICE_MANAGEMENT, user.getScopeId(), Actions.read, Actions.write, Actions.execute)); - permissions.addAll(permissionFactory.newPermissions(Domains.GROUP, user.getScopeId(), Actions.read)); - permissions.addAll(permissionFactory.newPermissions(Domains.ROLE, user.getScopeId(), Actions.read)); - permissions.addAll(permissionFactory.newPermissions(Domains.USER, user.getScopeId(), Actions.read)); + permissions.add(new Permission(Domains.ACCESS_INFO, Actions.read, user.getScopeId())); + + permissions.addAll(Permission.newPermissions(Domains.ACCOUNT, user.getScopeId(), Actions.read)); + permissions.addAll(Permission.newPermissions(Domains.CREDENTIAL, user.getScopeId(), Actions.read, Actions.write, Actions.delete)); + permissions.addAll(Permission.newPermissions(Domains.DATASTORE, user.getScopeId(), Actions.read)); + permissions.addAll(Permission.newPermissions(Domains.DEVICE, user.getScopeId(), Actions.read, Actions.write, Actions.delete)); + permissions.addAll(Permission.newPermissions(Domains.DEVICE_CONNECTION, user.getScopeId(), Actions.read)); + permissions.addAll(Permission.newPermissions(Domains.DEVICE_EVENT, user.getScopeId(), Actions.read, Actions.write)); + permissions.addAll(Permission.newPermissions(Domains.DEVICE_MANAGEMENT, user.getScopeId(), Actions.read, Actions.write, Actions.execute)); + permissions.addAll(Permission.newPermissions(Domains.GROUP, user.getScopeId(), Actions.read)); + permissions.addAll(Permission.newPermissions(Domains.ROLE, user.getScopeId(), Actions.read)); + permissions.addAll(Permission.newPermissions(Domains.USER, user.getScopeId(), Actions.read)); accessInfoCreator.setPermissions(permissions); @@ -317,7 +312,7 @@ private User createBrokerUser(String baseName, Account account) throws KapuaExce accessInfoCreator.setUserId(user.getId()); Set permissions = new HashSet<>(); - permissions.add(permissionFactory.newPermission(Domains.BROKER, Actions.connect, user.getScopeId())); + permissions.add(new Permission(Domains.BROKER, Actions.connect, user.getScopeId())); accessInfoCreator.setPermissions(permissions); diff --git a/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessorProvider.java b/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessorProvider.java index 41764a165b3..f2160532e2a 100644 --- a/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessorProvider.java +++ b/service/security/registration/simple/src/main/java/org/eclipse/kapua/security/registration/simple/SimpleRegistrationProcessorProvider.java @@ -23,11 +23,8 @@ import org.eclipse.kapua.security.registration.simple.SimpleRegistrationProcessor.Settings; import org.eclipse.kapua.security.registration.simple.setting.SimpleSetting; import org.eclipse.kapua.service.account.AccountService; -import org.eclipse.kapua.service.authentication.credential.CredentialFactory; import org.eclipse.kapua.service.authentication.credential.CredentialService; -import org.eclipse.kapua.service.authorization.access.AccessInfoFactory; import org.eclipse.kapua.service.authorization.access.AccessInfoService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.user.UserService; @@ -36,33 +33,24 @@ public class SimpleRegistrationProcessorProvider implements RegistrationProcesso private final SimpleSetting simpleSetting; private final AccountService accountService; private final CredentialService credentialService; - private final CredentialFactory credentialFactory; private final DeviceRegistryService deviceRegistryService; private final UserService userService; private final AccessInfoService accessInfoService; - private final AccessInfoFactory accessInfoFactory; - private final PermissionFactory permissionFactory; @Inject public SimpleRegistrationProcessorProvider( SimpleSetting simpleSetting, AccountService accountService, CredentialService credentialService, - CredentialFactory credentialFactory, DeviceRegistryService deviceRegistryService, UserService userService, - AccessInfoService accessInfoService, - AccessInfoFactory accessInfoFactory, - PermissionFactory permissionFactory) { + AccessInfoService accessInfoService) { this.simpleSetting = simpleSetting; this.accountService = accountService; this.credentialService = credentialService; - this.credentialFactory = credentialFactory; this.deviceRegistryService = deviceRegistryService; this.userService = userService; this.accessInfoService = accessInfoService; - this.accessInfoFactory = accessInfoFactory; - this.permissionFactory = permissionFactory; } @Override @@ -75,7 +63,6 @@ public Set createAll() { deviceRegistryService, userService, accessInfoService, - permissionFactory, simpleSetting, "preferred_username", settings)) diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/MfaOptionServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/MfaOptionServiceImpl.java index 9cac6d68f6a..a7fbd8227ae 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/MfaOptionServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/MfaOptionServiceImpl.java @@ -56,7 +56,7 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.exception.InternalUserOnlyException; import org.eclipse.kapua.service.authorization.exception.SelfManagedOnlyException; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.user.User; import org.eclipse.kapua.service.user.UserService; import org.eclipse.kapua.service.user.UserType; @@ -82,7 +82,6 @@ public class MfaOptionServiceImpl implements MfaOptionService { private final AccountService accountService; private final ScratchCodeRepository scratchCodeRepository; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final UserService userService; private final AuthenticationUtils authenticationUtils; private final QRCodeBuilder qrCodeBuilder; @@ -94,7 +93,6 @@ public MfaOptionServiceImpl( AccountService accountService, ScratchCodeRepository scratchCodeRepository, AuthorizationService authorizationService, - PermissionFactory permissionFactory, UserService userService, AuthenticationUtils authenticationUtils, QRCodeBuilder qrCodeBuilder) { this.trustKeyDuration = trustKeyDuration; @@ -104,7 +102,6 @@ public MfaOptionServiceImpl( this.accountService = accountService; this.scratchCodeRepository = scratchCodeRepository; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.userService = userService; this.authenticationUtils = authenticationUtils; this.qrCodeBuilder = qrCodeBuilder; @@ -117,7 +114,7 @@ public MfaOption create(final MfaOptionCreator mfaOptionCreator) throws KapuaExc ArgumentValidator.notNull(mfaOptionCreator.getScopeId(), "mfaOptionCreator.scopeId"); ArgumentValidator.notNull(mfaOptionCreator.getUserId(), "mfaOptionCreator.userId"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, mfaOptionCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, mfaOptionCreator.getScopeId())); // Check that the operation is carried by the user itself final KapuaSession session = KapuaSecurityUtils.getSession(); final KapuaId expectedUser = session.getUserId(); @@ -212,7 +209,7 @@ public MfaOption find(KapuaId scopeId, KapuaId mfaOptionId) throws KapuaExceptio ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(mfaOptionId, "mfaOptionId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); return txManager.execute(tx -> mfaOptionRepository.find(tx, scopeId, mfaOptionId)) .map(this::clearSecuritySensibleFields) @@ -233,7 +230,7 @@ public MfaOptionListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); final MfaOptionListResult res = txManager.execute(tx -> mfaOptionRepository.query(tx, query)); if (res.isEmpty() == false) { @@ -254,7 +251,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); return txManager.execute(tx -> mfaOptionRepository.count(tx, query)); } @@ -265,7 +262,7 @@ public void delete(KapuaId scopeId, KapuaId mfaOptionId) throws KapuaException { ArgumentValidator.notNull(mfaOptionId, "mfaOptionId"); ArgumentValidator.notNull(scopeId, "scopeId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.delete, scopeId)); txManager.execute(tx -> mfaOptionRepository.delete(tx, scopeId, mfaOptionId)); } @@ -276,7 +273,7 @@ public void deleteByUserId(KapuaId scopeId, KapuaId userId) throws KapuaExceptio ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(userId, "userId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.delete, scopeId)); txManager.execute(tx -> mfaOptionRepository .findByUserId(tx, scopeId, userId) @@ -394,7 +391,7 @@ public MfaOption findByUserId(KapuaId scopeId, KapuaId userId) throws KapuaExcep ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(userId, MfaOptionAttributes.USER_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); return txManager.execute(tx -> mfaOptionRepository.findByUserId(tx, scopeId, userId)) .map(this::clearSecuritySensibleFields) @@ -407,8 +404,8 @@ public String enableTrust(KapuaId scopeId, KapuaId userId) throws KapuaException ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(userId, "userId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, scopeId)); return txManager.execute(tx -> { // Checking existence @@ -437,7 +434,7 @@ public void disableTrust(KapuaId scopeId, KapuaId mfaOptionId) throws KapuaExcep // Argument Validation ArgumentValidator.notNull(mfaOptionId, "mfaOptionId"); ArgumentValidator.notNull(scopeId, "scopeId"); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, scopeId)); txManager.execute(tx -> { // extracting the MfaOption MfaOption mfaOption = mfaOptionRepository.find(tx, scopeId, mfaOptionId) diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/ScratchCodeServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/ScratchCodeServiceImpl.java index a460dad2a4b..5fc2e8053a8 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/ScratchCodeServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/shiro/ScratchCodeServiceImpl.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service.authentication.credential.mfa.shiro; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.model.domains.Domains; import org.eclipse.kapua.commons.util.ArgumentValidator; @@ -22,13 +24,11 @@ import org.eclipse.kapua.service.authentication.credential.mfa.ScratchCodeRepository; import org.eclipse.kapua.service.authentication.credential.mfa.ScratchCodeService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.inject.Singleton; - /** * {@link ScratchCodeService} implementation. */ @@ -39,17 +39,14 @@ public class ScratchCodeServiceImpl implements ScratchCodeService { private final TxManager txManager; private final ScratchCodeRepository scratchCodeRepository; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; public ScratchCodeServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, ScratchCodeRepository scratchCodeRepository) { this.txManager = txManager; this.scratchCodeRepository = scratchCodeRepository; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; } @Override @@ -58,7 +55,7 @@ public ScratchCodeListResult findByMfaOptionId(KapuaId scopeId, KapuaId mfaOptio ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(mfaOptionId, ScratchCodeImpl_.MFA_OPTION_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); return txManager.execute(tx -> scratchCodeRepository.findByMfaOptionId(tx, scopeId, mfaOptionId)); } @@ -69,7 +66,7 @@ public void delete(KapuaId scopeId, KapuaId scratchCodeId) throws KapuaException ArgumentValidator.notNull(scopeId, "scratchCode.scopeId"); ArgumentValidator.notNull(scratchCodeId, "scratchCode.id"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.delete, scopeId)); txManager.execute(tx -> scratchCodeRepository.delete(tx, scopeId, scratchCodeId)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/shiro/CredentialServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/shiro/CredentialServiceImpl.java index 49df26a3c2f..4538061eefc 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/shiro/CredentialServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/credential/shiro/CredentialServiceImpl.java @@ -49,7 +49,7 @@ import org.eclipse.kapua.service.authentication.shiro.setting.KapuaAuthenticationSettingKeys; import org.eclipse.kapua.service.authentication.user.PasswordResetRequest; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,7 +66,6 @@ public class CredentialServiceImpl extends KapuaConfigurableServiceBase implemen private SecureRandom random; private final CredentialRepository credentialRepository; - private final CredentialFactory credentialFactory; private final KapuaAuthenticationSetting kapuaAuthenticationSetting; private final PasswordValidator passwordValidator; private final PasswordResetter passwordResetter; @@ -76,7 +75,6 @@ public class CredentialServiceImpl extends KapuaConfigurableServiceBase implemen public CredentialServiceImpl( CredentialServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, CredentialRepository credentialRepository, CredentialFactory credentialFactory, @@ -85,10 +83,9 @@ public CredentialServiceImpl( PasswordResetter passwordResetter, Set availableCredentialAuthenticationType ) { - super(txManager, serviceConfigurationManager, Domains.CREDENTIAL, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.CREDENTIAL, authorizationService); this.credentialRepository = credentialRepository; - this.credentialFactory = credentialFactory; this.kapuaAuthenticationSetting = kapuaAuthenticationSetting; this.passwordResetter = passwordResetter; try { @@ -119,7 +116,7 @@ public Credential create(CredentialCreator credentialCreator) credentialTypeHandler.validateCreator(credentialCreator); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, credentialCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, credentialCreator.getScopeId())); final AtomicReference plainKey = new AtomicReference<>(null); @@ -167,7 +164,7 @@ public Credential update(Credential credential) ArgumentValidator.notNull(credential.getCredentialType(), "credential.credentialType"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, credential.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, credential.getScopeId())); final Credential updatedCredential = txManager.execute(tx -> { Credential currentCredential = credentialRepository.find(tx, credential.getScopeId(), credential.getId()) @@ -179,7 +176,7 @@ public Credential update(Credential credential) // Some fields must be updated only by admin users if (tryEditAdminFields(credential, currentCredential)) { - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, null)); } // Passing attributes?? @@ -196,7 +193,7 @@ public Credential find(KapuaId scopeId, KapuaId credentialId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(credentialId, "credentialId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); return txManager.execute(tx -> credentialRepository.find(tx, scopeId, credentialId)) .map(cred -> { @@ -212,7 +209,7 @@ public CredentialListResult query(KapuaQuery query) // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); final CredentialListResult credentials = txManager.execute(tx -> credentialRepository.query(tx, query)); credentials.getItems().forEach(credential -> credential.setCredentialKey(null)); @@ -227,8 +224,7 @@ public long count(KapuaQuery query) // Check Access KapuaLocator locator = KapuaLocator.getInstance(); AuthorizationService authorizationService = locator.getService(AuthorizationService.class); - PermissionFactory permissionFactory = locator.getFactory(PermissionFactory.class); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, query.getScopeId())); return txManager.execute(tx -> credentialRepository.count(tx, query)); } @@ -239,7 +235,7 @@ public void delete(KapuaId scopeId, KapuaId credentialId) ArgumentValidator.notNull(credentialId, "credential.id"); ArgumentValidator.notNull(scopeId, "credential.scopeId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.delete, scopeId)); txManager.execute(tx -> credentialRepository.delete(tx, scopeId, credentialId)); } @@ -250,7 +246,7 @@ public CredentialListResult findByUserId(KapuaId scopeId, KapuaId userId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(userId, "userId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); // Do find final CredentialListResult credentials = txManager.execute(tx -> credentialRepository.findByUserId(tx, scopeId, userId)); @@ -268,7 +264,7 @@ public CredentialListResult findByUserId(KapuaId scopeId, KapuaId userId, String ArgumentValidator.notNull(availableCredentialAuthenticationType.get(credentialType), "credentialType"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); // Do find KapuaQuery credentialQuery = new KapuaQuery(scopeId); @@ -316,7 +312,7 @@ public Credential findByApiKey(String apiKey) throws KapuaException { ///FIXME: why the permission check here? it does not rollback! // Check Access if (credential != null) { - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, credential.getId())); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, credential.getId())); credential.setCredentialKey(null); } @@ -329,7 +325,7 @@ public void unlock(KapuaId scopeId, KapuaId credentialId) throws KapuaException ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(credentialId, "credentialId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, scopeId)); txManager.execute(tx -> { Credential credential = credentialRepository.find(tx, scopeId, credentialId) @@ -398,7 +394,7 @@ public Credential findWithKey(KapuaId scopeId, KapuaId credentialId) throws Kapu // // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, null)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, null)); return txManager.execute(tx -> credentialRepository.find(tx, scopeId, credentialId)) .orElse(null); @@ -411,8 +407,8 @@ public Credential adminResetUserPassword(KapuaId scopeId, KapuaId userId, Passwo ArgumentValidator.notNull(passwordResetRequest, "passwordResetRequest"); ArgumentValidator.notNull(passwordResetRequest.getNewPassword(), "passwordResetRequest.netPassword"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.read, scopeId)); - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, scopeId)); return txManager.execute(tx -> passwordResetter.resetPassword(tx, scopeId, userId, false, passwordResetRequest)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/shiro/AuthenticationModule.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/shiro/AuthenticationModule.java index 9c35f50072e..e5c39697362 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/shiro/AuthenticationModule.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/shiro/AuthenticationModule.java @@ -94,7 +94,6 @@ import org.eclipse.kapua.service.authentication.token.shiro.AccessTokenImplJpaRepository; import org.eclipse.kapua.service.authentication.token.shiro.AccessTokenServiceImpl; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.user.UserService; import org.eclipse.kapua.storage.TxContext; @@ -143,7 +142,6 @@ public Domain credentialDomain() { public ServiceModule authenticationServiceModule(AccessTokenService accessTokenService, CredentialService credentialService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, KapuaJpaTxManagerFactory txManagerFactory, EventStoreRecordRepository eventStoreRecordRepository, ServiceEventBus serviceEventBus, @@ -157,7 +155,6 @@ public ServiceModule authenticationServiceModule(AccessTokenService accessTokenS new ServiceEventHouseKeeperFactoryImpl( new EventStoreServiceImpl( authorizationService, - permissionFactory, txManagerFactory.create("kapua-authentication"), eventStoreRecordRepository ), @@ -198,13 +195,11 @@ PasswordValidator passwordValidator(CredentialServiceConfigurationManager creden @Singleton AccessTokenService accessTokenService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, AccessTokenRepository accessTokenRepository, AccessTokenFactory accessTokenFactory, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new AccessTokenServiceImpl( authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authentication"), accessTokenRepository, accessTokenFactory); @@ -218,7 +213,6 @@ MfaOptionService mfaOptionService( AccountService accountService, ScratchCodeRepository scratchCodeRepository, AuthorizationService authorizationService, - PermissionFactory permissionFactory, UserService userService, KapuaJpaTxManagerFactory jpaTxManagerFactory, KapuaAuthenticationSetting kapuaAuthenticationSetting, @@ -234,7 +228,6 @@ MfaOptionService mfaOptionService( accountService, scratchCodeRepository, authorizationService, - permissionFactory, userService, authenticationUtils, qrCodeBuilder @@ -245,13 +238,10 @@ MfaOptionService mfaOptionService( @Singleton ScratchCodeService scratchCodeService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, ScratchCodeRepository scratchCodeRepository, - KapuaJpaTxManagerFactory jpaTxManagerFactory, - AuthenticationUtils authenticationUtils) { + KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new ScratchCodeServiceImpl( authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authentication"), scratchCodeRepository); } @@ -279,7 +269,6 @@ public ScratchCodeRepository scratchCodeRepository(KapuaJpaRepositoryConfigurati public CredentialService credentialService( CredentialServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, CredentialRepository credentialRepository, CredentialFactory credentialFactory, KapuaJpaTxManagerFactory jpaTxManagerFactory, @@ -289,7 +278,6 @@ public CredentialService credentialService( Set availableCredentialAuthenticationTypes) { return new CredentialServiceImpl(serviceConfigurationManager, authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authentication"), credentialRepository, credentialFactory, diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/token/shiro/AccessTokenServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/token/shiro/AccessTokenServiceImpl.java index 7652107e330..ad579ba93c2 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/token/shiro/AccessTokenServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/token/shiro/AccessTokenServiceImpl.java @@ -34,7 +34,7 @@ import org.eclipse.kapua.service.authentication.token.AccessTokenRepository; import org.eclipse.kapua.service.authentication.token.AccessTokenService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,19 +49,16 @@ public class AccessTokenServiceImpl implements AccessTokenService { private static final Logger LOGGER = LoggerFactory.getLogger(AccessTokenServiceImpl.class); private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final AccessTokenRepository accessTokenRepository; private final AccessTokenFactory accessTokenFactory; public AccessTokenServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, AccessTokenRepository accessTokenRepository, AccessTokenFactory accessTokenFactory) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.accessTokenRepository = accessTokenRepository; this.accessTokenFactory = accessTokenFactory; @@ -78,7 +75,7 @@ public AccessToken create(AccessTokenCreator accessTokenCreator) throws KapuaExc ArgumentValidator.notNull(accessTokenCreator.getTokenIdentifier(), "accessTokenCreator.tokenIdentifier"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.write, accessTokenCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.write, accessTokenCreator.getScopeId())); // Do create AccessToken at = accessTokenFactory.newEntity(accessTokenCreator.getScopeId()); @@ -100,7 +97,7 @@ public AccessToken update(AccessToken accessToken) throws KapuaException { ArgumentValidator.notNull(accessToken.getUserId(), "accessToken.userId"); ArgumentValidator.notNull(accessToken.getExpiresOn(), "accessToken.expiresOn"); // Check access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.write, accessToken.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.write, accessToken.getScopeId())); return txManager.execute(tx -> { // Check existence if (!accessTokenRepository.find(tx, accessToken.getScopeId(), accessToken.getId()).isPresent()) { @@ -117,7 +114,7 @@ public AccessToken find(KapuaId scopeId, KapuaId accessTokenId) throws KapuaExce ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accessTokenId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.read, scopeId)); // Do find return txManager.execute(tx -> accessTokenRepository.find(tx, scopeId, accessTokenId)) .orElse(null); @@ -128,7 +125,7 @@ public AccessTokenListResult query(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> accessTokenRepository.query(tx, query)); } @@ -138,7 +135,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> accessTokenRepository.count(tx, query)); } @@ -149,7 +146,7 @@ public void delete(KapuaId scopeId, KapuaId accessTokenId) throws KapuaException ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accessTokenId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.delete, scopeId)); // Check existence txManager.execute(tx -> { if (!accessTokenRepository.find(tx, scopeId, accessTokenId).isPresent()) { @@ -166,7 +163,7 @@ public AccessTokenListResult findByUserId(KapuaId scopeId, KapuaId userId) throw ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(userId, "userId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.read, scopeId)); // Build query final KapuaQuery query = new KapuaQuery(scopeId); query.setPredicate(query.attributePredicate(AccessTokenAttributes.USER_ID, userId)); @@ -182,7 +179,7 @@ public AccessToken findByTokenId(String tokenId) throws KapuaException { Optional accessToken = txManager.execute(tx -> accessTokenRepository.findByTokenId(tx, tokenId)); // Check Access if (accessToken.isPresent()) { - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.read, accessToken.get().getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.read, accessToken.get().getScopeId())); } return accessToken @@ -195,7 +192,7 @@ public void invalidate(KapuaId scopeId, KapuaId accessTokenId) throws KapuaExcep ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accessTokenId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_TOKEN, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_TOKEN, Actions.write, scopeId)); // Do find txManager.execute(tx -> accessTokenRepository.find(tx, scopeId, accessTokenId) diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsModule.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsModule.java index 614dc608722..97d666bdf62 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsModule.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsModule.java @@ -20,7 +20,6 @@ import org.eclipse.kapua.commons.core.AbstractKapuaModule; import org.eclipse.kapua.commons.jpa.KapuaJpaTxManagerFactory; import org.eclipse.kapua.service.authentication.AuthenticationService; -import org.eclipse.kapua.service.authentication.credential.CredentialFactory; import org.eclipse.kapua.service.authentication.credential.CredentialRepository; import org.eclipse.kapua.service.authentication.credential.handler.CredentialTypeHandler; import org.eclipse.kapua.service.authentication.credential.handler.shiro.PasswordCredentialTypeHandler; @@ -29,7 +28,6 @@ import org.eclipse.kapua.service.authentication.credential.shiro.PasswordValidator; import org.eclipse.kapua.service.authentication.user.UserCredentialsService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.user.UserService; import com.google.inject.Module; @@ -71,20 +69,14 @@ PasswordResetter passwordResetter( UserCredentialsService userCredentialsService( AuthenticationService authenticationService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, - CredentialFactory credentialFactory, KapuaJpaTxManagerFactory txManagerFactory, UserService userService, - CredentialRepository credentialRepository, PasswordResetter passwordResetter) { return new UserCredentialsServiceImpl( authenticationService, authorizationService, - permissionFactory, - credentialFactory, txManagerFactory.create("kapua-authorization"), userService, - credentialRepository, passwordResetter); } } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsServiceImpl.java index da3d4a581e9..736484acd7b 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authentication/user/shiro/UserCredentialsServiceImpl.java @@ -27,8 +27,6 @@ import org.eclipse.kapua.service.authentication.AuthenticationService; import org.eclipse.kapua.service.authentication.UsernamePasswordCredentials; import org.eclipse.kapua.service.authentication.credential.Credential; -import org.eclipse.kapua.service.authentication.credential.CredentialFactory; -import org.eclipse.kapua.service.authentication.credential.CredentialRepository; import org.eclipse.kapua.service.authentication.credential.shiro.PasswordResetter; import org.eclipse.kapua.service.authentication.exception.KapuaAuthenticationErrorCodes; import org.eclipse.kapua.service.authentication.exception.KapuaAuthenticationException; @@ -36,7 +34,7 @@ import org.eclipse.kapua.service.authentication.user.PasswordResetRequest; import org.eclipse.kapua.service.authentication.user.UserCredentialsService; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.user.User; import org.eclipse.kapua.service.user.UserService; import org.eclipse.kapua.storage.TxManager; @@ -51,28 +49,20 @@ public class UserCredentialsServiceImpl implements UserCredentialsService { private final AuthenticationService authenticationService; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; - private final CredentialFactory credentialFactory; private final TxManager txManager; private final UserService userService; - private final CredentialRepository credentialRepository; private final PasswordResetter passwordResetter; public UserCredentialsServiceImpl( AuthenticationService authenticationService, - AuthorizationService authorizationService, PermissionFactory permissionFactory, - CredentialFactory credentialFactory, + AuthorizationService authorizationService, TxManager txManager, UserService userService, - CredentialRepository credentialRepository, PasswordResetter passwordResetter) { this.authenticationService = authenticationService; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; - this.credentialFactory = credentialFactory; this.txManager = txManager; this.userService = userService; - this.credentialRepository = credentialRepository; this.passwordResetter = passwordResetter; } @@ -110,7 +100,7 @@ public Credential resetPassword(KapuaId scopeId, KapuaId credentialId, PasswordR ArgumentValidator.notNull(passwordResetRequest.getNewPassword(), "passwordResetRequest.newPassword"); // Check accessauth - authorizationService.checkPermission(permissionFactory.newPermission(Domains.CREDENTIAL, Actions.write, scopeId)); + authorizationService.checkPermission(new Permission(Domains.CREDENTIAL, Actions.write, scopeId)); return txManager.execute(tx -> passwordResetter.resetPassword(tx, scopeId, credentialId, passwordResetRequest)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessInfoServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessInfoServiceImpl.java index 2909f023952..f25263904d7 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessInfoServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessInfoServiceImpl.java @@ -26,20 +26,17 @@ import org.eclipse.kapua.service.authorization.access.AccessInfo; import org.eclipse.kapua.service.authorization.access.AccessInfoAttributes; import org.eclipse.kapua.service.authorization.access.AccessInfoCreator; -import org.eclipse.kapua.service.authorization.access.AccessInfoFactory; import org.eclipse.kapua.service.authorization.access.AccessInfoListResult; import org.eclipse.kapua.service.authorization.access.AccessInfoRepository; import org.eclipse.kapua.service.authorization.access.AccessInfoService; import org.eclipse.kapua.service.authorization.access.AccessPermission; import org.eclipse.kapua.service.authorization.access.AccessPermissionCreator; -import org.eclipse.kapua.service.authorization.access.AccessPermissionFactory; import org.eclipse.kapua.service.authorization.access.AccessPermissionRepository; import org.eclipse.kapua.service.authorization.access.AccessRole; import org.eclipse.kapua.service.authorization.access.AccessRoleCreator; import org.eclipse.kapua.service.authorization.access.AccessRoleFactory; import org.eclipse.kapua.service.authorization.access.AccessRoleRepository; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionValidator; import org.eclipse.kapua.service.authorization.role.Role; import org.eclipse.kapua.service.authorization.role.RoleRepository; @@ -57,38 +54,29 @@ public class AccessInfoServiceImpl implements AccessInfoService { private static final Logger LOGGER = LoggerFactory.getLogger(AccessInfoServiceImpl.class); private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final RoleRepository roleRepository; private final AccessRoleRepository accessRoleRepository; private final AccessRoleFactory accessRoleFactory; private final AccessInfoRepository accessInfoRepository; - private final AccessInfoFactory accessInfoFactory; private final AccessPermissionRepository accessPermissionRepository; - private final AccessPermissionFactory accessPermissionFactory; private final PermissionValidator permissionValidator; public AccessInfoServiceImpl(AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, RoleRepository roleRepository, AccessRoleFactory accessRoleFactory, AccessRoleRepository accessRoleRepository, AccessInfoRepository accessInfoRepository, - AccessInfoFactory accessInfoFactory, AccessPermissionRepository accessPermissionRepository, - AccessPermissionFactory accessPermissionFactory, PermissionValidator permissionValidator) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.roleRepository = roleRepository; this.accessRoleFactory = accessRoleFactory; this.accessRoleRepository = accessRoleRepository; this.accessInfoRepository = accessInfoRepository; - this.accessInfoFactory = accessInfoFactory; this.accessPermissionRepository = accessPermissionRepository; - this.accessPermissionFactory = accessPermissionFactory; this.permissionValidator = permissionValidator; } @@ -97,7 +85,7 @@ public AccessInfo create(AccessInfoCreator accessInfoCreator) throws KapuaException { ArgumentValidator.notNull(accessInfoCreator, "accessInfoCreator"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.write, accessInfoCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.write, accessInfoCreator.getScopeId())); // If permission are created out of the access info scope, check that the current user has the permission on the external scopeId. if (accessInfoCreator.getPermissions() != null) { for (Permission p : accessInfoCreator.getPermissions()) { @@ -162,7 +150,7 @@ public AccessInfo find(KapuaId scopeId, KapuaId accessInfoId) ArgumentValidator.notNull(scopeId, "accountId"); ArgumentValidator.notNull(accessInfoId, "accessInfoId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, scopeId)); return txManager.execute(tx -> accessInfoRepository.find(tx, scopeId, accessInfoId)) .orElse(null); @@ -173,7 +161,7 @@ public AccessInfo findByUserId(KapuaId scopeId, KapuaId userId) throws KapuaExce ArgumentValidator.notNull(scopeId, "accountId"); ArgumentValidator.notNull(userId, "userId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, scopeId)); return txManager.execute(tx -> accessInfoRepository.findByUserId(tx, scopeId, userId)) .orElse(null); @@ -184,7 +172,7 @@ public AccessInfoListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); return txManager.execute(tx -> accessInfoRepository.query(tx, query)); } @@ -194,7 +182,7 @@ public long count(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); return txManager.execute(tx -> accessInfoRepository.count(tx, query)); } @@ -202,7 +190,7 @@ public long count(KapuaQuery query) @Override public void delete(KapuaId scopeId, KapuaId accessInfoId) throws KapuaException { // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.delete, scopeId)); txManager.execute(tx -> accessInfoRepository.delete(tx, scopeId, accessInfoId)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessPermissionServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessPermissionServiceImpl.java index 7b2fe12515b..73f9b7697a9 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessPermissionServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessPermissionServiceImpl.java @@ -39,7 +39,6 @@ import org.eclipse.kapua.service.authorization.access.AccessPermissionRepository; import org.eclipse.kapua.service.authorization.access.AccessPermissionService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionValidator; import org.eclipse.kapua.storage.TxManager; @@ -52,7 +51,6 @@ public class AccessPermissionServiceImpl implements AccessPermissionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final AccessPermissionRepository accessPermissionRepository; private final AccessInfoRepository accessInfoRepository; @@ -61,13 +59,11 @@ public class AccessPermissionServiceImpl implements AccessPermissionService { @Inject public AccessPermissionServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, AccessPermissionRepository accessPermissionRepository, AccessInfoRepository accessInfoRepository, PermissionValidator permissionValidator) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.accessPermissionRepository = accessPermissionRepository; this.accessInfoRepository = accessInfoRepository; @@ -82,7 +78,7 @@ public AccessPermission create(AccessPermissionCreator accessPermissionCreator) ArgumentValidator.notNull(accessPermissionCreator.getAccessInfoId(), "accessPermissionCreator.accessInfoId"); ArgumentValidator.notNull(accessPermissionCreator.getPermission(), "accessPermissionCreator.permission"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.write, accessPermissionCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.write, accessPermissionCreator.getScopeId())); // If permission are created out of the access permission scope, check that the current user has the permission on the external scopeId. final Permission permission = accessPermissionCreator.getPermission(); if (permission.getTargetScopeId() == null || !permission.getTargetScopeId().equals(accessPermissionCreator.getScopeId())) { @@ -135,7 +131,7 @@ public void delete(KapuaId scopeId, KapuaId accessPermissionId) throws KapuaExce ArgumentValidator.notNull(accessPermissionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.delete, scopeId)); txManager.execute(tx -> accessPermissionRepository.delete(tx, scopeId, accessPermissionId)); } @@ -146,7 +142,7 @@ public AccessPermission find(KapuaId scopeId, KapuaId accessPermissionId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accessPermissionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, scopeId)); return txManager.execute(tx -> accessPermissionRepository.find(tx, scopeId, accessPermissionId)) .orElse(null); } @@ -157,7 +153,7 @@ public AccessPermissionListResult findByAccessInfoId(KapuaId scopeId, KapuaId ac ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accessInfoId, "accessInfoId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, scopeId)); return txManager.execute(tx -> accessPermissionRepository.findByAccessInfoId(tx, scopeId, accessInfoId)); @@ -168,7 +164,7 @@ public AccessPermissionListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); return txManager.execute(tx -> accessPermissionRepository.query(tx, query)); } @@ -177,7 +173,7 @@ public long count(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); return txManager.execute(tx -> accessPermissionRepository.count(tx, query)); } } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessRoleServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessRoleServiceImpl.java index 32e051158b3..70e11de7f0c 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessRoleServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/access/shiro/AccessRoleServiceImpl.java @@ -33,7 +33,7 @@ import org.eclipse.kapua.service.authorization.access.AccessRoleListResult; import org.eclipse.kapua.service.authorization.access.AccessRoleRepository; import org.eclipse.kapua.service.authorization.access.AccessRoleService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.authorization.role.Role; import org.eclipse.kapua.service.authorization.role.RolePermissionAttributes; import org.eclipse.kapua.service.authorization.role.RoleRepository; @@ -52,7 +52,6 @@ public class AccessRoleServiceImpl implements AccessRoleService { private final AccessInfoRepository accessInfoRepository; private final AccessRoleRepository accessRoleRepository; private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; @Inject public AccessRoleServiceImpl( @@ -60,14 +59,12 @@ public AccessRoleServiceImpl( RoleRepository roleRepository, AccessInfoRepository accessInfoRepository, AccessRoleRepository accessRoleRepository, - AuthorizationService authorizationService, - PermissionFactory permissionFactory) { + AuthorizationService authorizationService) { this.txManager = txManager; this.roleRepository = roleRepository; this.accessInfoRepository = accessInfoRepository; this.accessRoleRepository = accessRoleRepository; this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; } @Override @@ -77,7 +74,7 @@ public AccessRole create(AccessRoleCreator accessRoleCreator) ArgumentValidator.notNull(accessRoleCreator.getAccessInfoId(), "accessRoleCreator.accessInfoId"); ArgumentValidator.notNull(accessRoleCreator.getRoleId(), "accessRoleCreator.roleId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.write, accessRoleCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.write, accessRoleCreator.getScopeId())); return txManager.execute(tx -> { // Check that AccessInfo exists @@ -115,7 +112,7 @@ public AccessRole find(KapuaId scopeId, KapuaId accessRoleId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(accessRoleId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, scopeId)); // Do find return txManager.execute(tx -> accessRoleRepository.find(tx, scopeId, accessRoleId)) .orElse(null); @@ -128,7 +125,7 @@ public AccessRoleListResult findByAccessInfoId(KapuaId scopeId, KapuaId accessIn ArgumentValidator.notNull(accessInfoId, "accessInfoId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, scopeId)); // Check cache return txManager.execute(tx -> accessRoleRepository.findByAccessInfoId(tx, scopeId, accessInfoId)); @@ -139,7 +136,7 @@ public AccessRoleListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> accessRoleRepository.query(tx, query)); } @@ -149,7 +146,7 @@ public long count(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> accessRoleRepository.count(tx, query)); } @@ -161,7 +158,7 @@ public void delete(KapuaId scopeId, KapuaId accessRoleId) ArgumentValidator.notNull(accessRoleId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ACCESS_INFO, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ACCESS_INFO, Actions.delete, scopeId)); // Do delete txManager.execute(tx -> accessRoleRepository.delete(tx, scopeId, accessRoleId)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/domain/shiro/DomainRegistryServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/domain/shiro/DomainRegistryServiceImpl.java index 1ebe8a8be41..016e9a84d2e 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/domain/shiro/DomainRegistryServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/domain/shiro/DomainRegistryServiceImpl.java @@ -26,11 +26,10 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.Domain; import org.eclipse.kapua.service.authorization.domain.DomainCreator; -import org.eclipse.kapua.service.authorization.domain.DomainFactory; import org.eclipse.kapua.service.authorization.domain.DomainListResult; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.domain.DomainRepository; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,22 +45,16 @@ public class DomainRegistryServiceImpl implements DomainRegistryService { private static final Logger LOGGER = LoggerFactory.getLogger(DomainRegistryServiceImpl.class); private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final DomainRepository domainRepository; - private final DomainFactory domainFactory; public DomainRegistryServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, - DomainRepository domainRepository, - DomainFactory domainFactory) { + DomainRepository domainRepository) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.domainRepository = domainRepository; - this.domainFactory = domainFactory; } @Override @@ -72,7 +65,7 @@ public Domain create(DomainCreator domainCreator) ArgumentValidator.notNull(domainCreator.getActions(), "domainCreator.actions"); ArgumentValidator.notEmptyOrNull(domainCreator.getServiceName(), "domainCreator.serviceName"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DOMAIN, Actions.write, null)); + authorizationService.checkPermission(new Permission(Domains.DOMAIN, Actions.write, null)); Domain domain = new DomainImpl(); domain.setName(domainCreator.getName()); @@ -90,7 +83,7 @@ public Domain create(DomainCreator domainCreator) public void delete(KapuaId scopeId, KapuaId domainId) throws KapuaException { ArgumentValidator.notNull(domainId, "domainId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DOMAIN, Actions.delete, null)); + authorizationService.checkPermission(new Permission(Domains.DOMAIN, Actions.delete, null)); txManager.execute(tx -> domainRepository.delete(tx, scopeId, domainId)); } @@ -100,7 +93,7 @@ public Domain find(KapuaId scopeId, KapuaId domainId) throws KapuaException { ArgumentValidator.notNull(domainId, "domainId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); return txManager.execute(tx -> domainRepository.find(tx, scopeId, domainId)) .orElse(null); @@ -114,7 +107,7 @@ public Domain findByName(String name) // Do find final Optional foundDomain = txManager.execute(tx -> domainRepository.findByName(tx, KapuaId.ANY, name)); if (foundDomain.isPresent()) { - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); } return foundDomain .orElse(null); @@ -125,7 +118,7 @@ public DomainListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); return txManager.execute(tx -> domainRepository.query(tx, query)); } @@ -135,7 +128,7 @@ public long count(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); + authorizationService.checkPermission(new Permission(Domains.DOMAIN, Actions.read, KapuaId.ANY)); return txManager.execute(tx -> domainRepository.count(tx, query)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/group/shiro/GroupServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/group/shiro/GroupServiceImpl.java index 88538bf8f95..037b1c4b01b 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/group/shiro/GroupServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/group/shiro/GroupServiceImpl.java @@ -33,7 +33,7 @@ import org.eclipse.kapua.service.authorization.group.GroupQuery; import org.eclipse.kapua.service.authorization.group.GroupRepository; import org.eclipse.kapua.service.authorization.group.GroupService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.storage.TxManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +47,6 @@ public class GroupServiceImpl extends KapuaConfigurableServiceBase implements GroupService { private static final Logger LOG = LoggerFactory.getLogger(GroupServiceImpl.class); - private final PermissionFactory permissionFactory; private final AuthorizationService authorizationService; private final TxManager txManager; private final GroupRepository groupRepository; @@ -55,8 +54,6 @@ public class GroupServiceImpl extends KapuaConfigurableServiceBase implements Gr /** * Injectable constructor * - * @param permissionFactory - * The {@link PermissionFactory} instance. * @param authorizationService * The {@link AuthorizationService} instance. * @param serviceConfigurationManager @@ -66,12 +63,10 @@ public class GroupServiceImpl extends KapuaConfigurableServiceBase implements Gr * @since 2.0.0 */ @Inject - public GroupServiceImpl(PermissionFactory permissionFactory, - AuthorizationService authorizationService, + public GroupServiceImpl(AuthorizationService authorizationService, ServiceConfigurationManager serviceConfigurationManager, TxManager txManager, GroupRepository groupRepository) { - super(txManager, serviceConfigurationManager, Domains.GROUP, authorizationService, permissionFactory); - this.permissionFactory = permissionFactory; + super(txManager, serviceConfigurationManager, Domains.GROUP, authorizationService); this.authorizationService = authorizationService; this.txManager = txManager; this.groupRepository = groupRepository; @@ -84,7 +79,7 @@ public Group create(GroupCreator groupCreator) throws KapuaException { ArgumentValidator.notNull(groupCreator.getScopeId(), "roleCreator.scopeId"); ArgumentValidator.validateEntityName(groupCreator.getName(), "groupCreator.name"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.GROUP, Actions.write, groupCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.GROUP, Actions.write, groupCreator.getScopeId())); return txManager.execute(tx -> { // Check entity limit serviceConfigurationManager.checkAllowedEntities(tx, groupCreator.getScopeId(), "Groups"); @@ -108,7 +103,7 @@ public Group update(Group group) throws KapuaException { ArgumentValidator.notNull(group.getScopeId(), "group.scopeId"); ArgumentValidator.validateEntityName(group.getName(), "group.name"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.GROUP, Actions.write, group.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.GROUP, Actions.write, group.getScopeId())); return txManager.execute(tx -> { // Check existence if (!groupRepository.find(tx, group.getScopeId(), group.getId()).isPresent()) { @@ -129,7 +124,7 @@ public void delete(KapuaId scopeId, KapuaId groupId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(groupId, "groupId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.GROUP, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.GROUP, Actions.delete, scopeId)); txManager.execute(tx -> groupRepository.delete(tx, scopeId, groupId)); } @@ -140,7 +135,7 @@ public Group find(KapuaId scopeId, KapuaId groupId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(groupId, "groupId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.GROUP, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.GROUP, Actions.read, scopeId)); // Do find return txManager.execute(tx -> groupRepository.find(tx, scopeId, groupId)) .orElse(null); @@ -151,7 +146,7 @@ public GroupListResult query(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.GROUP, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.GROUP, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> groupRepository.query(tx, query)); } @@ -161,7 +156,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.GROUP, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.GROUP, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> groupRepository.count(tx, query)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/permission/shiro/PermissionFactoryImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/permission/shiro/PermissionFactoryImpl.java deleted file mode 100644 index 96963bb2189..00000000000 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/permission/shiro/PermissionFactoryImpl.java +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Eurotech - initial API and implementation - *******************************************************************************/ -package org.eclipse.kapua.service.authorization.permission.shiro; - -import javax.inject.Singleton; - -import org.eclipse.kapua.model.domain.Actions; -import org.eclipse.kapua.model.id.KapuaId; -import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; - -/** - * {@link PermissionFactory} implementation. - */ -@Singleton -public class PermissionFactoryImpl implements PermissionFactory { - - @Override - public Permission newPermission(String domain, Actions action, KapuaId targetScopeId, KapuaId groupId, boolean forwardable) { - return new Permission(domain, action, targetScopeId, groupId, forwardable); - } -} diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RolePermissionServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RolePermissionServiceImpl.java index b06a0add4ec..1e14a2007e0 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RolePermissionServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RolePermissionServiceImpl.java @@ -31,7 +31,6 @@ import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionValidator; import org.eclipse.kapua.service.authorization.role.Role; import org.eclipse.kapua.service.authorization.role.RolePermission; @@ -52,19 +51,18 @@ public class RolePermissionServiceImpl implements RolePermissionService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final TxManager txManager; private final RoleRepository roleRepository; private final RolePermissionRepository rolePermissionRepository; private final PermissionValidator permissionValidator; public RolePermissionServiceImpl( - AuthorizationService authorizationService, PermissionFactory permissionFactory, TxManager txManager, + AuthorizationService authorizationService, + TxManager txManager, RoleRepository roleRepository, RolePermissionRepository rolePermissionRepository, PermissionValidator permissionValidator) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.txManager = txManager; this.roleRepository = roleRepository; this.rolePermissionRepository = rolePermissionRepository; @@ -78,7 +76,7 @@ public RolePermission create(RolePermissionCreator rolePermissionCreator) ArgumentValidator.notNull(rolePermissionCreator.getRoleId(), "rolePermissionCreator.roleId"); ArgumentValidator.notNull(rolePermissionCreator.getPermission(), "rolePermissionCreator.permission"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.write, rolePermissionCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.write, rolePermissionCreator.getScopeId())); return txManager.execute(tx -> { // Check role existence @@ -131,7 +129,7 @@ public void delete(KapuaId scopeId, KapuaId rolePermissionId) throws KapuaExcept ArgumentValidator.notNull(rolePermissionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.delete, scopeId)); if (KapuaId.ONE.equals(rolePermissionId)) { throw new KapuaException(KapuaErrorCodes.PERMISSION_DELETE_NOT_ALLOWED); @@ -145,7 +143,7 @@ public RolePermission find(KapuaId scopeId, KapuaId rolePermissionId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(rolePermissionId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, scopeId)); return txManager.execute(tx -> rolePermissionRepository.find(tx, scopeId, rolePermissionId)) .orElse(null); @@ -157,7 +155,7 @@ public RolePermissionListResult findByRoleId(KapuaId scopeId, KapuaId roleId) ArgumentValidator.notNull(scopeId, KapuaEntityAttributes.SCOPE_ID); ArgumentValidator.notNull(roleId, KapuaEntityAttributes.ENTITY_ID); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, scopeId)); return txManager.execute(tx -> rolePermissionRepository.findByRoleId(tx, scopeId, roleId)); } @@ -167,7 +165,7 @@ public RolePermissionListResult query(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, query.getScopeId())); return txManager.execute(tx -> rolePermissionRepository.query(tx, query)); } @@ -177,7 +175,7 @@ public long count(KapuaQuery query) throws KapuaException { ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, query.getScopeId())); return txManager.execute(tx -> rolePermissionRepository.count(tx, query)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RoleServiceImpl.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RoleServiceImpl.java index e4120a15a4d..0d1ceacf48e 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RoleServiceImpl.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/role/shiro/RoleServiceImpl.java @@ -42,7 +42,6 @@ import org.eclipse.kapua.service.authorization.access.AccessRoleListResult; import org.eclipse.kapua.service.authorization.access.AccessRoleService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionValidator; import org.eclipse.kapua.service.authorization.role.Role; import org.eclipse.kapua.service.authorization.role.RoleCreator; @@ -82,8 +81,6 @@ public class RoleServiceImpl extends KapuaConfigurableServiceBase implements Rol /** * Injectable constructor * - * @param permissionFactory - * The {@link PermissionFactory} instance. * @param authorizationService * The {@link AuthorizationService} instance. * @param rolePermissionFactory @@ -96,7 +93,6 @@ public class RoleServiceImpl extends KapuaConfigurableServiceBase implements Rol */ @Inject public RoleServiceImpl( - PermissionFactory permissionFactory, AuthorizationService authorizationService, RolePermissionFactory rolePermissionFactory, AccessRoleFactory accessRoleFactory, @@ -108,7 +104,7 @@ public RoleServiceImpl( RoleRepository roleRepository, RolePermissionRepository rolePermissionRepository, PermissionValidator permissionValidator) { - super(txManager, serviceConfigurationManager, Domains.ROLE, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.ROLE, authorizationService); this.rolePermissionFactory = rolePermissionFactory; this.accessRoleFactory = accessRoleFactory; this.accessInfoFactory = accessInfoFactory; @@ -127,7 +123,7 @@ public Role create(RoleCreator roleCreator) throws KapuaException { ArgumentValidator.validateEntityName(roleCreator.getName(), "roleCreator.name"); ArgumentValidator.notNull(roleCreator.getPermissions(), "roleCreator.permissions"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.write, roleCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.write, roleCreator.getScopeId())); return txManager.execute(tx -> { // Check entity limit @@ -185,7 +181,7 @@ public Role update(Role role) throws KapuaException { ArgumentValidator.notNull(role.getScopeId(), "role.scopeId"); ArgumentValidator.validateEntityName(role.getName(), "role.name"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.write, role.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.write, role.getScopeId())); return txManager.execute(tx -> { // Check existence @@ -206,7 +202,7 @@ public void delete(KapuaId scopeId, KapuaId roleId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(roleId, "roleId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.delete, scopeId)); if (roleId.equals(KapuaId.ONE)) { throw new KapuaException(KapuaErrorCodes.ADMIN_ROLE_DELETED_ERROR); @@ -221,7 +217,7 @@ public Role find(KapuaId scopeId, KapuaId roleId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(roleId, "roleId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, scopeId)); // Do find return txManager.execute(tx -> roleRepository.find(tx, scopeId, roleId)) .orElse(null); @@ -232,7 +228,7 @@ public RoleListResult query(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> roleRepository.query(tx, query)); } @@ -242,7 +238,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.ROLE, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.ROLE, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> roleRepository.count(tx, query)); } diff --git a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/shiro/AuthorizationModule.java b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/shiro/AuthorizationModule.java index 66057938c10..f213ffe066a 100644 --- a/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/shiro/AuthorizationModule.java +++ b/service/security/shiro/src/main/java/org/eclipse/kapua/service/authorization/shiro/AuthorizationModule.java @@ -79,8 +79,6 @@ import org.eclipse.kapua.service.authorization.group.shiro.GroupFactoryImpl; import org.eclipse.kapua.service.authorization.group.shiro.GroupImplJpaRepository; import org.eclipse.kapua.service.authorization.group.shiro.GroupServiceImpl; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; -import org.eclipse.kapua.service.authorization.permission.shiro.PermissionFactoryImpl; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionValidator; import org.eclipse.kapua.service.authorization.role.RoleFactory; import org.eclipse.kapua.service.authorization.role.RolePermissionFactory; @@ -111,8 +109,6 @@ protected void configureModule() { bind(DomainFactory.class).to(DomainFactoryImpl.class).in(Singleton.class); - bind(PermissionFactory.class).to(PermissionFactoryImpl.class).in(Singleton.class); - bind(AccessInfoFactory.class).to(AccessInfoFactoryImpl.class).in(Singleton.class); bind(AccessPermissionFactory.class).to(AccessPermissionFactoryImpl.class).in(Singleton.class); bind(AccessRoleFactory.class).to(AccessRoleFactoryImpl.class).in(Singleton.class); @@ -152,7 +148,6 @@ ServiceModule authorizationServiceModule(AccessInfoService accessInfoService, DomainRegistryService domainRegistryService, GroupService groupService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, KapuaJpaTxManagerFactory txManagerFactory, EventStoreRecordRepository eventStoreRecordRepository, ServiceEventBus serviceEventBus, @@ -168,7 +163,6 @@ ServiceModule authorizationServiceModule(AccessInfoService accessInfoService, new ServiceEventHouseKeeperFactoryImpl( new EventStoreServiceImpl( authorizationService, - permissionFactory, txManagerFactory.create("kapua-authorization"), eventStoreRecordRepository ), @@ -191,16 +185,13 @@ TxManager authorizationTxManager( @Singleton DomainRegistryService domainRegistryService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, - DomainRepository domainRepository, DomainFactory domainFactory, + DomainRepository domainRepository, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new DomainRegistryServiceImpl( authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authorization"), - domainRepository, - domainFactory); + domainRepository); } @Provides @@ -211,7 +202,7 @@ DomainRepository domainRepository(KapuaJpaRepositoryConfiguration jpaRepoConfig) @Provides @Singleton - RolePermissionService rolePermissionService(PermissionFactory permissionFactory, + RolePermissionService rolePermissionService( AuthorizationService authorizationService, RoleRepository roleRepository, RolePermissionRepository rolePermissionRepository, @@ -219,7 +210,6 @@ RolePermissionService rolePermissionService(PermissionFactory permissionFactory, PermissionValidator permissionValidator) { return new RolePermissionServiceImpl( authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authorization"), roleRepository, rolePermissionRepository, @@ -229,7 +219,7 @@ RolePermissionService rolePermissionService(PermissionFactory permissionFactory, @Provides @Singleton - RoleService roleService(PermissionFactory permissionFactory, + RoleService roleService( AuthorizationService authorizationService, RolePermissionFactory rolePermissionFactory, AccessRoleFactory accessRoleFactory, @@ -243,7 +233,6 @@ RoleService roleService(PermissionFactory permissionFactory, PermissionValidator permissionValidator ) { return new RoleServiceImpl( - permissionFactory, authorizationService, rolePermissionFactory, accessRoleFactory, @@ -301,12 +290,11 @@ RolePermissionRepository rolePermissionRepository(KapuaJpaRepositoryConfiguratio @Provides @Singleton - GroupService groupService(PermissionFactory permissionFactory, - AuthorizationService authorizationService, + GroupService groupService(AuthorizationService authorizationService, @Named("GroupServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, GroupRepository groupRepository, KapuaJpaTxManagerFactory jpaTxManagerFactory) { - return new GroupServiceImpl(permissionFactory, authorizationService, serviceConfigurationManager, + return new GroupServiceImpl(authorizationService, serviceConfigurationManager, jpaTxManagerFactory.create("kapua-authorization"), groupRepository); } @@ -347,26 +335,20 @@ GroupRepository groupRepository(KapuaJpaRepositoryConfiguration jpaRepoConfig) { @Singleton AccessInfoService accessInfoService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, RoleRepository roleRepository, AccessRoleFactory accessRoleFactory, AccessRoleRepository accessRoleRepository, AccessInfoRepository accessInfoRepository, - AccessInfoFactory accessInfoFactory, AccessPermissionRepository accessPermissionRepository, - AccessPermissionFactory accessPermissionFactory, KapuaJpaTxManagerFactory jpaTxManagerFactory, PermissionValidator permissionValidator) { return new AccessInfoServiceImpl(authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authorization"), roleRepository, accessRoleFactory, accessRoleRepository, accessInfoRepository, - accessInfoFactory, accessPermissionRepository, - accessPermissionFactory, permissionValidator); } @@ -383,13 +365,11 @@ AccessInfoRepository accessInfoRepository(KapuaCacheManager kapuaCacheManager, C @Singleton AccessPermissionService accessPermissionService( AuthorizationService authorizationService, - PermissionFactory permissionFactory, AccessPermissionRepository accessPermissionRepository, AccessInfoRepository accessInfoRepository, KapuaJpaTxManagerFactory jpaTxManagerFactory, PermissionValidator permissionValidator) { return new AccessPermissionServiceImpl(authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-authorization"), accessPermissionRepository, accessInfoRepository, @@ -412,15 +392,13 @@ AccessRoleService accessRoleService(RoleRepository roleRepository, AccessInfoRepository accessInfoRepository, AccessRoleRepository accessRoleRepository, AuthorizationService authorizationService, - PermissionFactory permissionFactory, KapuaJpaTxManagerFactory jpaTxManagerFactory) { return new AccessRoleServiceImpl( jpaTxManagerFactory.create("kapua-authorization"), roleRepository, accessInfoRepository, accessRoleRepository, - authorizationService, - permissionFactory + authorizationService ); } diff --git a/service/security/test-steps/src/main/java/org/eclipse/kapua/service/authorization/steps/AuthorizationServiceSteps.java b/service/security/test-steps/src/main/java/org/eclipse/kapua/service/authorization/steps/AuthorizationServiceSteps.java index 59859d5e062..530d327d5fc 100644 --- a/service/security/test-steps/src/main/java/org/eclipse/kapua/service/authorization/steps/AuthorizationServiceSteps.java +++ b/service/security/test-steps/src/main/java/org/eclipse/kapua/service/authorization/steps/AuthorizationServiceSteps.java @@ -58,16 +58,13 @@ import org.eclipse.kapua.service.authorization.access.AccessRoleService; import org.eclipse.kapua.service.authorization.domain.Domain; import org.eclipse.kapua.service.authorization.domain.DomainCreator; -import org.eclipse.kapua.service.authorization.domain.DomainFactory; import org.eclipse.kapua.service.authorization.domain.DomainListResult; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.group.Group; import org.eclipse.kapua.service.authorization.group.GroupCreator; -import org.eclipse.kapua.service.authorization.group.GroupFactory; import org.eclipse.kapua.service.authorization.group.GroupListResult; import org.eclipse.kapua.service.authorization.group.GroupService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.role.Role; import org.eclipse.kapua.service.authorization.role.RoleCreator; import org.eclipse.kapua.service.authorization.role.RoleFactory; @@ -136,7 +133,6 @@ public class AuthorizationServiceSteps extends TestBase { private static final TestDomain TEST_DOMAIN = new TestDomain(); // Various Authorization service references - private PermissionFactory permissionFactory; private AccessInfoService accessInfoService; private AccessInfoFactory accessInfoFactory; private AccessPermissionService accessPermissionService; @@ -144,9 +140,7 @@ public class AuthorizationServiceSteps extends TestBase { private AccessRoleService accessRoleService; private AccessRoleFactory accessRoleFactory; private DomainRegistryService domainRegistryService; - private DomainFactory domainFactory; private GroupService groupService; - private GroupFactory groupFactory; private RoleService roleService; private RoleFactory roleFactory; private RolePermissionService rolePermissionService; @@ -168,14 +162,11 @@ public void setServices() { accessRoleService = locator.getService(AccessRoleService.class); accessRoleFactory = locator.getFactory(AccessRoleFactory.class); domainRegistryService = locator.getService(DomainRegistryService.class); - domainFactory = locator.getFactory(DomainFactory.class); groupService = locator.getService(GroupService.class); - groupFactory = locator.getFactory(GroupFactory.class); roleService = locator.getService(RoleService.class); roleFactory = locator.getFactory(RoleFactory.class); rolePermissionService = locator.getService(RolePermissionService.class); rolePermissionFactory = locator.getFactory(RolePermissionFactory.class); - permissionFactory = locator.getFactory(PermissionFactory.class); userService = locator.getService(UserService.class); } @@ -244,7 +235,7 @@ public void createAListOfRoles(List roles) throws Exception { permissions = new HashSet<>(); if ((tmpRole.getActions() != null) && (tmpRole.getActions().size() > 0)) { for (Actions tmpAct : tmpRole.getActions()) { - permissions.add(permissionFactory.newPermission(domain.getDomain().getName(), tmpAct, tmpRole.getScopeId())); + permissions.add(new Permission(domain.getDomain().getName(), tmpAct, tmpRole.getScopeId())); } } roleCreator = new RoleCreator(tmpRole.getScopeId()); @@ -276,7 +267,7 @@ public void createAListOfRolePermissions(List perms) throws E domain.setScopeId(tmpCPerm.getScopeId()); RolePermissionCreator rolePermissionCreator = new RolePermissionCreator(tmpCPerm.getScopeId()); rolePermissionCreator.setRoleId(role.getId()); - rolePermissionCreator.setPermission(permissionFactory.newPermission(domain.getDomain().getName(), tmpCPerm.getAction(), tmpCPerm.getTargetScopeId())); + rolePermissionCreator.setPermission(new Permission(domain.getDomain().getName(), tmpCPerm.getAction(), tmpCPerm.getTargetScopeId())); try { stepData.remove(ROLE_PERMISSIONS); rolePermission = rolePermissionService.create(rolePermissionCreator); @@ -556,8 +547,8 @@ public void checkRolePermissionEqualityMethod() { RolePermission perm1 = rolePermissionFactory.newEntity(SYS_SCOPE_ID); RolePermission perm2 = rolePermissionFactory.newEntity(SYS_SCOPE_ID); Integer miscObj = 1; - Permission tmpPermission1 = permissionFactory.newPermission(TEST_DOMAIN.getName(), Actions.read, SYS_SCOPE_ID); - Permission tmpPermission2 = permissionFactory.newPermission(TEST_DOMAIN.getName(), Actions.write, SYS_SCOPE_ID); + Permission tmpPermission1 = new Permission(TEST_DOMAIN.getName(), Actions.read, SYS_SCOPE_ID); + Permission tmpPermission2 = new Permission(TEST_DOMAIN.getName(), Actions.write, SYS_SCOPE_ID); KapuaId tmpRoleId1 = getKapuaId(); KapuaId tmpRoleId2 = getKapuaId(); Assert.assertNotNull(perm1); @@ -582,7 +573,7 @@ public void checkRolePermissionEqualityMethod() { @Then("The role permission object constructors are sane") public void checkRolePermissionConstructors() { - Permission tmpPermission = permissionFactory.newPermission(TEST_DOMAIN.getName(), Actions.read, SYS_SCOPE_ID); + Permission tmpPermission = new Permission(TEST_DOMAIN.getName(), Actions.read, SYS_SCOPE_ID); KapuaId tmpRoleId = getKapuaId(); RolePermission perm1 = rolePermissionFactory.newEntity(SYS_SCOPE_ID); Assert.assertNotNull(perm1); @@ -1022,19 +1013,19 @@ public void createPermissionsForDomain(String permList) { for (String perm : tmpList) { switch (perm.trim()) { case "read": - permissions.add(permissionFactory.newPermission(curDomain.getDomain().getName(), Actions.read, currId)); + permissions.add(new Permission(curDomain.getDomain().getName(), Actions.read, currId)); break; case "write": - permissions.add(permissionFactory.newPermission(curDomain.getDomain().getName(), Actions.write, currId)); + permissions.add(new Permission(curDomain.getDomain().getName(), Actions.write, currId)); break; case "delete": - permissions.add(permissionFactory.newPermission(curDomain.getDomain().getName(), Actions.delete, currId)); + permissions.add(new Permission(curDomain.getDomain().getName(), Actions.delete, currId)); break; case "connect": - permissions.add(permissionFactory.newPermission(curDomain.getDomain().getName(), Actions.connect, currId)); + permissions.add(new Permission(curDomain.getDomain().getName(), Actions.connect, currId)); break; case "execute": - permissions.add(permissionFactory.newPermission(curDomain.getDomain().getName(), Actions.execute, currId)); + permissions.add(new Permission(curDomain.getDomain().getName(), Actions.execute, currId)); break; } } @@ -1342,7 +1333,7 @@ public void accessPermissionFactorySanityCheck() { AccessPermission tmpAccPerm = accessPermissionFactory.newEntity(getKapuaId()); Assert.assertNotNull(tmpAccPerm); tmpAccPerm.setAccessInfoId(getKapuaId()); - Permission tmpPerm = permissionFactory.newPermission(new TestDomain().getName(), Actions.read, getKapuaId(), getKapuaId()); + Permission tmpPerm = new Permission(new TestDomain().getName(), Actions.read, getKapuaId(), getKapuaId()); tmpAccPerm.setPermission(tmpPerm); Assert.assertEquals(tmpPerm, tmpAccPerm.getPermission()); tmpAccPerm.setAccessInfoId(null); @@ -1499,8 +1490,8 @@ public void checkAccessRoleComparison() throws Exception { public void checkAccessPermissionComparison() { AccessPermission accPerm1 = accessPermissionFactory.newEntity(getKapuaId()); AccessPermission accPerm2 = accessPermissionFactory.newEntity(getKapuaId()); - Permission tmpPerm1 = permissionFactory.newPermission(new TestDomain().getName(), Actions.read, SYS_SCOPE_ID, getKapuaId()); - Permission tmpPerm2 = permissionFactory.newPermission(new TestDomain().getName(), Actions.write, SYS_SCOPE_ID, getKapuaId()); + Permission tmpPerm1 = new Permission(new TestDomain().getName(), Actions.read, SYS_SCOPE_ID, getKapuaId()); + Permission tmpPerm2 = new Permission(new TestDomain().getName(), Actions.write, SYS_SCOPE_ID, getKapuaId()); Assert.assertTrue(accPerm1.equals(accPerm1)); Assert.assertFalse(accPerm1.equals(null)); Assert.assertFalse(accPerm1.equals(Integer.valueOf(15))); @@ -1536,24 +1527,24 @@ public void checkAccessPermissionComparison() { public void permissionFactorySanityChecks() throws KapuaException { Permission tmpPerm = null; TestDomain tmpDomain = new TestDomain(); - tmpPerm = permissionFactory.newPermission(tmpDomain.getName(), Actions.read, SYS_SCOPE_ID); + tmpPerm = new Permission(tmpDomain.getName(), Actions.read, SYS_SCOPE_ID); Assert.assertNotNull(tmpPerm); Assert.assertNotNull(tmpPerm.getDomain()); Assert.assertEquals(tmpDomain.getName(), tmpPerm.getDomain()); Assert.assertEquals(Actions.read, tmpPerm.getAction()); - tmpPerm = permissionFactory.newPermission(tmpDomain.getName(), Actions.write, SYS_SCOPE_ID, getKapuaId(9)); + tmpPerm = new Permission(tmpDomain.getName(), Actions.write, SYS_SCOPE_ID, getKapuaId(9)); Assert.assertNotNull(tmpPerm); Assert.assertNotNull(tmpPerm.getDomain()); Assert.assertEquals(tmpDomain.getName(), tmpPerm.getDomain()); Assert.assertEquals(Actions.write, tmpPerm.getAction()); Assert.assertEquals(getKapuaId(9), tmpPerm.getGroupId()); Assert.assertFalse(tmpPerm.getForwardable()); - tmpPerm = permissionFactory.newPermission((String) null, Actions.execute, SYS_SCOPE_ID, getKapuaId(9), true); + tmpPerm = new Permission((String) null, Actions.execute, SYS_SCOPE_ID, getKapuaId(9), true); Assert.assertNotNull(tmpPerm); Assert.assertEquals(Actions.execute, tmpPerm.getAction()); Assert.assertTrue(tmpPerm.getForwardable()); tmpDomain.setName(null); - tmpPerm = permissionFactory.newPermission(tmpDomain.getName(), Actions.connect, SYS_SCOPE_ID, getKapuaId()); + tmpPerm = new Permission(tmpDomain.getName(), Actions.connect, SYS_SCOPE_ID, getKapuaId()); Assert.assertNotNull(tmpPerm); Assert.assertEquals(Actions.connect, tmpPerm.getAction()); } @@ -1563,8 +1554,8 @@ public void permissionFactorySanityChecks() throws KapuaException { // As such this step is of limited usefulness and should be taken with a grain of salt. @Then("I can compare permission objects") public void checkPermissionComparison() { - Permission perm1 = permissionFactory.newPermission("test_domain_1", Actions.read, getKapuaId(10), getKapuaId(100)); - Permission perm2 = permissionFactory.newPermission("test_domain_1", Actions.read, getKapuaId(10), getKapuaId(100)); + Permission perm1 = new Permission("test_domain_1", Actions.read, getKapuaId(10), getKapuaId(100)); + Permission perm2 = new Permission("test_domain_1", Actions.read, getKapuaId(10), getKapuaId(100)); Assert.assertTrue(perm1.equals(perm1)); Assert.assertFalse(perm1.equals(null)); Assert.assertFalse(perm1.equals(Integer.valueOf(10))); @@ -1910,7 +1901,7 @@ public void iCreateTheFollowingRolePermissionInSubaccount(String accountName, Li domain.setScopeId(tmpCPerm.getScopeId()); RolePermissionCreator rolePermissionCreator = new RolePermissionCreator(account.getId()); rolePermissionCreator.setRoleId(role.getId()); - rolePermissionCreator.setPermission(permissionFactory.newPermission(domain.getDomain().getName(), tmpCPerm.getAction(), tmpCPerm.getTargetScopeId())); + rolePermissionCreator.setPermission(new Permission(domain.getDomain().getName(), tmpCPerm.getAction(), tmpCPerm.getTargetScopeId())); try { stepData.remove("ChildAccountRolePermissions"); rolePermission = rolePermissionService.create(rolePermissionCreator); diff --git a/service/security/test/src/test/java/org/eclipse/kapua/service/security/test/SecurityLocatorConfiguration.java b/service/security/test/src/test/java/org/eclipse/kapua/service/security/test/SecurityLocatorConfiguration.java index 16d52c65774..61408fa9349 100644 --- a/service/security/test/src/test/java/org/eclipse/kapua/service/security/test/SecurityLocatorConfiguration.java +++ b/service/security/test/src/test/java/org/eclipse/kapua/service/security/test/SecurityLocatorConfiguration.java @@ -69,7 +69,6 @@ import org.eclipse.kapua.service.authorization.group.shiro.GroupImplJpaRepository; import org.eclipse.kapua.service.authorization.group.shiro.GroupServiceImpl; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionValidator; import org.eclipse.kapua.service.authorization.role.RoleFactory; import org.eclipse.kapua.service.authorization.role.RolePermissionFactory; @@ -134,14 +133,9 @@ protected void configure() { bind(KapuaJpaRepositoryConfiguration.class).toInstance(new KapuaJpaRepositoryConfiguration()); bind(AuthorizationService.class).toInstance(mockedAuthorization); - // Inject mocked Permission Factory - PermissionFactory mockPermissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(mockPermissionFactory); - // Inject actual Role service related services final KapuaJpaRepositoryConfiguration jpaRepoConfig = new KapuaJpaRepositoryConfiguration(); bind(RoleService.class).toInstance(new RoleServiceImpl( - mockPermissionFactory, mockedAuthorization, new RolePermissionFactoryImpl(), new AccessRoleFactoryImpl(), @@ -158,7 +152,6 @@ protected void configure() { bind(RolePermissionFactory.class).toInstance(new RolePermissionFactoryImpl()); bind(GroupService.class).toInstance(new GroupServiceImpl( - mockPermissionFactory, mockedAuthorization, Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-authorization"), @@ -179,7 +172,6 @@ protected void configure() { bind(CredentialService.class).toInstance(new CredentialServiceImpl( credentialServiceConfigurationManager, mockedAuthorization, - mockPermissionFactory, new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-authorization"), credentialRepository, credentialFactory, @@ -218,7 +210,6 @@ protected void configure() { bind(UserService.class).toInstance(new UserServiceImpl( Mockito.mock(ServiceConfigurationManager.class), mockedAuthorization, - mockPermissionFactory, new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-user"), new UserImplJpaRepository(jpaRepoConfig), userFactory, diff --git a/service/stream/internal/src/main/java/org/eclipse/kapua/service/stream/internal/StreamServiceImpl.java b/service/stream/internal/src/main/java/org/eclipse/kapua/service/stream/internal/StreamServiceImpl.java index ee8ee6eed59..86a1bfe0243 100644 --- a/service/stream/internal/src/main/java/org/eclipse/kapua/service/stream/internal/StreamServiceImpl.java +++ b/service/stream/internal/src/main/java/org/eclipse/kapua/service/stream/internal/StreamServiceImpl.java @@ -29,7 +29,7 @@ import org.eclipse.kapua.message.device.data.KapuaDataMessage; import org.eclipse.kapua.model.domain.Actions; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.device.call.kura.exception.KuraDeviceCallErrorCodes; import org.eclipse.kapua.service.device.call.kura.exception.KuraDeviceCallException; import org.eclipse.kapua.service.device.call.message.kura.app.response.KuraResponseMessage; @@ -61,7 +61,6 @@ public class StreamServiceImpl implements StreamService { private final AuthorizationService authorizationService; - private final PermissionFactory permissionFactory; private final DeviceRegistryService deviceRegistryService; private final EndpointInfoService endpointInfoService; private final TransportClientFactory transportClientFactory; @@ -70,13 +69,11 @@ public class StreamServiceImpl implements StreamService { @Inject public StreamServiceImpl( AuthorizationService authorizationService, - PermissionFactory permissionFactory, DeviceRegistryService deviceRegistryService, EndpointInfoService endpointInfoService, TransportClientFactory transportClientFactory, TranslatorHub translatorHub) { this.authorizationService = authorizationService; - this.permissionFactory = permissionFactory; this.deviceRegistryService = deviceRegistryService; this.endpointInfoService = endpointInfoService; this.transportClientFactory = transportClientFactory; @@ -90,7 +87,7 @@ public StreamServiceImpl( ArgumentValidator.notNull(kapuaDataMessage.getScopeId(), "dataMessage.scopeId"); ArgumentValidator.notNull(kapuaDataMessage.getChannel(), "dataMessage.channel"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.STREAM, Actions.write, kapuaDataMessage.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.STREAM, Actions.write, kapuaDataMessage.getScopeId())); // Do publish try (TransportFacade transportFacade = borrowClient(kapuaDataMessage)) { // Get Kura to transport translator for the request and vice versa diff --git a/service/system/test/src/test/java/org/eclipse/kapua/service/systeminfo/test/SystemInfoLocatorConfiguration.java b/service/system/test/src/test/java/org/eclipse/kapua/service/systeminfo/test/SystemInfoLocatorConfiguration.java index d052526f764..8f47f44f2d2 100644 --- a/service/system/test/src/test/java/org/eclipse/kapua/service/systeminfo/test/SystemInfoLocatorConfiguration.java +++ b/service/system/test/src/test/java/org/eclipse/kapua/service/systeminfo/test/SystemInfoLocatorConfiguration.java @@ -32,7 +32,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.systeminfo.SystemInfoService; import org.eclipse.kapua.service.systeminfo.internal.SystemInfoServiceImpl; import org.mockito.Matchers; @@ -82,8 +81,6 @@ protected void configure() { } bind(AuthorizationService.class).toInstance(mockedAuthorization); - // Inject mocked Permission Factory - bind(PermissionFactory.class).toInstance(Mockito.mock(PermissionFactory.class)); // binding Account related services bind(AccountService.class).toInstance(Mockito.mock(AccountService.class)); diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java index 73de0d6d158..5d382b2b2f0 100644 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java @@ -33,7 +33,6 @@ import org.eclipse.kapua.model.domain.Domain; import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.tag.TagFactory; import org.eclipse.kapua.service.tag.TagRepository; import org.eclipse.kapua.service.tag.TagService; @@ -51,13 +50,12 @@ protected void configureModule() { @Provides @Singleton TagService tagService( - PermissionFactory permissionFactory, AuthorizationService authorizationService, @Named("TagServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, TagRepository tagRepository, TagFactory tagFactory, KapuaJpaTxManagerFactory jpaTxManagerFactory) { - return new TagServiceImpl(permissionFactory, authorizationService, serviceConfigurationManager, + return new TagServiceImpl(authorizationService, serviceConfigurationManager, jpaTxManagerFactory.create("kapua-tag"), tagRepository, tagFactory); diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java index 13fecbb6686..e04be9c5021 100644 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java @@ -12,6 +12,9 @@ *******************************************************************************/ package org.eclipse.kapua.service.tag.internal; +import javax.inject.Inject; +import javax.inject.Singleton; + import org.eclipse.kapua.KapuaDuplicateNameException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.configuration.KapuaConfigurableServiceBase; @@ -22,7 +25,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagCreator; import org.eclipse.kapua.service.tag.TagFactory; @@ -31,9 +34,6 @@ import org.eclipse.kapua.service.tag.TagService; import org.eclipse.kapua.storage.TxManager; -import javax.inject.Inject; -import javax.inject.Singleton; - /** * {@link TagService} implementation. * @@ -42,7 +42,6 @@ @Singleton public class TagServiceImpl extends KapuaConfigurableServiceBase implements TagService { - private final PermissionFactory permissionFactory; private final AuthorizationService authorizationService; private final TagFactory tagFactory; private final TxManager txManager; @@ -51,24 +50,24 @@ public class TagServiceImpl extends KapuaConfigurableServiceBase implements TagS /** * Injectable Constructor * - * @param permissionFactory The {@link PermissionFactory} instance - * @param authorizationService The {@link AuthorizationService} instance - * @param serviceConfigurationManager The {@link ServiceConfigurationManager} instance + * @param authorizationService + * The {@link AuthorizationService} instance + * @param serviceConfigurationManager + * The {@link ServiceConfigurationManager} instance * @param txManager - * @param tagRepository The {@link TagRepository} instance + * @param tagRepository + * The {@link TagRepository} instance * @param tagFactory * @since 2.0.0 */ @Inject public TagServiceImpl( - PermissionFactory permissionFactory, AuthorizationService authorizationService, ServiceConfigurationManager serviceConfigurationManager, TxManager txManager, TagRepository tagRepository, TagFactory tagFactory) { - super(txManager, serviceConfigurationManager, Domains.TAG, authorizationService, permissionFactory); - this.permissionFactory = permissionFactory; + super(txManager, serviceConfigurationManager, Domains.TAG, authorizationService); this.authorizationService = authorizationService; this.tagRepository = tagRepository; this.tagFactory = tagFactory; @@ -82,7 +81,7 @@ public Tag create(TagCreator tagCreator) throws KapuaException { ArgumentValidator.notNull(tagCreator.getScopeId(), "tagCreator.scopeId"); ArgumentValidator.validateEntityName(tagCreator.getName(), "tagCreator.name"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.TAG, Actions.write, tagCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.TAG, Actions.write, tagCreator.getScopeId())); return txManager.execute(tx -> { // Check entity limit serviceConfigurationManager.checkAllowedEntities(tx, tagCreator.getScopeId(), "Tags"); @@ -110,7 +109,7 @@ public Tag update(Tag tag) throws KapuaException { // Check Access authorizationService.checkPermission( - permissionFactory.newPermission(Domains.TAG, Actions.write, tag.getScopeId())); + new Permission(Domains.TAG, Actions.write, tag.getScopeId())); // Check duplicate name return txManager.execute(tx -> { @@ -131,7 +130,7 @@ public void delete(KapuaId scopeId, KapuaId tagId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(tagId, "tagId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.TAG, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.TAG, Actions.delete, scopeId)); // Check existence txManager.execute(tx -> tagRepository.delete(tx, scopeId, tagId)); } @@ -142,7 +141,7 @@ public Tag find(KapuaId scopeId, KapuaId tagId) throws KapuaException { ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(tagId, "tagId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.TAG, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.TAG, Actions.read, scopeId)); // Do find return txManager.execute(tx -> tagRepository.find(tx, scopeId, tagId)) .orElse(null); @@ -153,7 +152,7 @@ public TagListResult query(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.TAG, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.TAG, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> tagRepository.query(tx, query)); } @@ -163,7 +162,7 @@ public long count(KapuaQuery query) throws KapuaException { // Argument validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.TAG, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.TAG, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> tagRepository.count(tx, query)); } diff --git a/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java b/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java index 0c2aa38a5a1..a08be1495ec 100644 --- a/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java +++ b/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java @@ -23,7 +23,6 @@ import org.eclipse.kapua.model.id.KapuaIdImpl; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagCreator; import org.eclipse.kapua.service.tag.TagFactory; @@ -44,7 +43,6 @@ public class TagServiceImplTest { throw new UnsupportedOperationException(invocation.toString()); }); public static final Permission FAKE_PERMISSION = new Permission("fakeDomain", Actions.execute, new KapuaIdImpl(BigInteger.ONE), new KapuaIdImpl(BigInteger.TEN), true); - private PermissionFactory permissionFactory; private AuthorizationService authorizationService; private ServiceConfigurationManager serviceConfigurationManager; private TagRepository tagRepository; @@ -53,8 +51,7 @@ public class TagServiceImplTest { @BeforeEach public void setUp() throws KapuaException { - permissionFactory = Mockito.mock(PermissionFactory.class); - Mockito.when(permissionFactory.newPermission(Mockito.any(), Mockito.any(), Mockito.any())) + Mockito.when(new Permission(Mockito.any(), Mockito.any(), Mockito.any())) .thenReturn(FAKE_PERMISSION); authorizationService = Mockito.mock(AuthorizationService.class); serviceConfigurationManager = Mockito.mock(ServiceConfigurationManager.class); @@ -78,7 +75,6 @@ public TxContext getTxContext() { .thenAnswer(invocation -> new TagImpl(invocation.getArgumentAt(0, KapuaId.class))); instance = new TagServiceImpl( - permissionFactory, authorizationService, serviceConfigurationManager, txManager, diff --git a/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java b/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java index c083c8c96fc..cb1ca4586fb 100644 --- a/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java +++ b/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java @@ -46,7 +46,6 @@ import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.group.GroupService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.registry.DeviceFactory; import org.eclipse.kapua.service.device.registry.DeviceRegistryService; import org.eclipse.kapua.service.device.registry.DeviceRepository; @@ -119,9 +118,6 @@ protected void configure() { bind(KapuaJpaRepositoryConfiguration.class).toInstance(new KapuaJpaRepositoryConfiguration()); bind(AuthorizationService.class).toInstance(mockedAuthorization); - // Inject mocked Permission Factory - final PermissionFactory permissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(permissionFactory); try { Mockito.doNothing().when(mockedAuthorization).checkPermission(Matchers.any(Permission.class)); } catch (KapuaException e) { @@ -146,7 +142,6 @@ protected void configure() { final DeviceConnectionServiceImpl deviceConnectionService = new DeviceConnectionServiceImpl( Mockito.mock(ServiceConfigurationManager.class), mockedAuthorization, - permissionFactory, new DeviceConnectionFactoryImpl(), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-device"), new DeviceConnectionImplJpaRepository(jpaRepoConfig), @@ -155,7 +150,6 @@ protected void configure() { bind(DeviceEventRepository.class).toInstance(new DeviceEventImplJpaRepository(jpaRepoConfig)); final DeviceEventServiceImpl deviceEventService = new DeviceEventServiceImpl( mockedAuthorization, - permissionFactory, new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-device"), new DeviceImplJpaRepository(jpaRepoConfig), new DeviceEventFactoryImpl(), @@ -166,13 +160,11 @@ protected void configure() { new KapuaDeviceRegistrySettings().getInt(KapuaDeviceRegistrySettingKeys.DEVICE_LIFECYCLE_BIRTH_VAR_FIELDS_LENGTH_MAX), new KapuaDeviceRegistrySettings().getInt(KapuaDeviceRegistrySettingKeys.DEVICE_LIFECYCLE_BIRTH_EXTENDED_PROPERTIES_LENGTH_MAX), mockedAuthorization, - permissionFactory, Mockito.mock(GroupService.class), deviceConnectionService, deviceEventService, new DeviceImplJpaRepository(jpaRepoConfig), new TagServiceImpl( - permissionFactory, mockedAuthorization, Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-tag"), @@ -183,7 +175,6 @@ protected void configure() { new DeviceRegistryServiceImpl( Mockito.mock(ServiceConfigurationManager.class), mockedAuthorization, - permissionFactory, new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-device"), new DeviceImplJpaRepository(jpaRepoConfig), new DeviceFactoryImpl(), @@ -196,7 +187,6 @@ protected void configure() { bind(DeviceConnectionService.class).toInstance(new DeviceConnectionServiceImpl( Mockito.mock(ServiceConfigurationManager.class), mockedAuthorization, - permissionFactory, new DeviceConnectionFactoryImpl(), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-device"), new DeviceConnectionImplJpaRepository(jpaRepoConfig), @@ -211,7 +201,6 @@ protected void configure() { bind(KapuaMessageFactory.class).toInstance(new KapuaMessageFactoryImpl()); bind(TagFactory.class).to(TagFactoryImpl.class); bind(TagService.class).toInstance(new TagServiceImpl( - permissionFactory, mockedAuthorization, Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-tag"), diff --git a/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserModule.java b/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserModule.java index 54f1c35f146..4d29ec7b11d 100644 --- a/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserModule.java +++ b/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserModule.java @@ -42,7 +42,6 @@ import org.eclipse.kapua.model.domain.Domain; import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.user.UserFactory; import org.eclipse.kapua.service.user.UserRepository; import org.eclipse.kapua.service.user.UserService; @@ -77,7 +76,6 @@ public Domain userDomain() { public UserService userService( @Named("UserServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, UserRepository userRepository, UserFactory userFactory, EventStorer eventStorer, @@ -85,7 +83,6 @@ public UserService userService( return new UserServiceImpl( serviceConfigurationManager, authorizationService, - permissionFactory, jpaTxManagerFactory.create("kapua-user"), userRepository, userFactory, @@ -95,7 +92,6 @@ public UserService userService( @ProvidesIntoSet public ServiceModule userServiceModule(UserService userService, AuthorizationService authorizationService, - PermissionFactory permissionFactory, KapuaJpaTxManagerFactory txManagerFactory, EventStoreRecordRepository eventStoreRecordRepository, ServiceEventBus serviceEventBus, @@ -108,7 +104,6 @@ public ServiceModule userServiceModule(UserService userService, new ServiceEventHouseKeeperFactoryImpl( new EventStoreServiceImpl( authorizationService, - permissionFactory, txManagerFactory.create("kapua-user"), eventStoreRecordRepository ), diff --git a/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserServiceImpl.java b/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserServiceImpl.java index c35e6d5c0ea..e1a5324e87b 100644 --- a/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserServiceImpl.java +++ b/service/user/internal/src/main/java/org/eclipse/kapua/service/user/internal/UserServiceImpl.java @@ -39,7 +39,7 @@ import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.model.query.KapuaQuery; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; +import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.user.User; import org.eclipse.kapua.service.user.UserCreator; import org.eclipse.kapua.service.user.UserFactory; @@ -69,11 +69,10 @@ public class UserServiceImpl extends KapuaConfigurableServiceBase implements Use public UserServiceImpl( ServiceConfigurationManager serviceConfigurationManager, AuthorizationService authorizationService, - PermissionFactory permissionFactory, TxManager txManager, UserRepository userRepository, UserFactory userFactory, EventStorer eventStorer) { - super(txManager, serviceConfigurationManager, Domains.USER, authorizationService, permissionFactory); + super(txManager, serviceConfigurationManager, Domains.USER, authorizationService); this.userRepository = userRepository; this.userFactory = userFactory; this.eventStorer = eventStorer; @@ -103,7 +102,7 @@ public User create(UserCreator userCreator) throws KapuaException { ArgumentValidator.isEmptyOrNull(userCreator.getExternalUsername(), "userCreator.externalUsername"); } // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.write, userCreator.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.write, userCreator.getScopeId())); return txManager.execute(tx -> { // Check entity limit @@ -175,7 +174,7 @@ public User update(User user) throws KapuaException { ArgumentValidator.isEmptyOrNull(user.getExternalUsername(), "user.externalUsername"); } // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.write, user.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.write, user.getScopeId())); return txManager.execute( tx -> { @@ -247,7 +246,7 @@ public void delete(KapuaId scopeId, KapuaId userId) throws KapuaException { ArgumentValidator.notNull(scopeId.getId(), "user.scopeId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.delete, scopeId)); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.delete, scopeId)); txManager.execute( tx -> { @@ -274,7 +273,7 @@ public User find(KapuaId scopeId, KapuaId userId) ArgumentValidator.notNull(scopeId, "scopeId"); ArgumentValidator.notNull(userId, "userId"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.read, scopeId)); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.read, scopeId)); // Do the find return txManager.execute(tx -> userRepository.find(tx, scopeId, userId)) @@ -314,7 +313,7 @@ public UserListResult query(KapuaQuery query) // Argument Validation ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.read, query.getScopeId())); // Do query return txManager.execute(tx -> userRepository.query(tx, query)); } @@ -325,7 +324,7 @@ public long count(KapuaQuery query) // Argument Validator ArgumentValidator.notNull(query, "query"); // Check Access - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.read, query.getScopeId())); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.read, query.getScopeId())); // Do count return txManager.execute(tx -> userRepository.count(tx, query)); } @@ -336,7 +335,7 @@ public long count(KapuaQuery query) private Optional checkReadAccess(Optional user) throws KapuaException { if (user.isPresent()) { - authorizationService.checkPermission(permissionFactory.newPermission(Domains.USER, Actions.read, user.get().getScopeId())); + authorizationService.checkPermission(new Permission(Domains.USER, Actions.read, user.get().getScopeId())); } return user; } diff --git a/service/user/test-steps/src/main/java/org/eclipse/kapua/service/user/steps/UserServiceSteps.java b/service/user/test-steps/src/main/java/org/eclipse/kapua/service/user/steps/UserServiceSteps.java index e2c4cc21f4c..89601a86587 100644 --- a/service/user/test-steps/src/main/java/org/eclipse/kapua/service/user/steps/UserServiceSteps.java +++ b/service/user/test-steps/src/main/java/org/eclipse/kapua/service/user/steps/UserServiceSteps.java @@ -65,7 +65,6 @@ import org.eclipse.kapua.service.authorization.access.AccessPermissionAttributes; import org.eclipse.kapua.service.authorization.access.AccessPermissionService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.authorization.permission.shiro.PermissionImpl; import org.eclipse.kapua.service.user.User; import org.eclipse.kapua.service.user.UserAttributes; @@ -120,7 +119,6 @@ public class UserServiceSteps extends TestBase { */ private AccessInfoService accessInfoService; private AuthenticationService authenticationService; - private PermissionFactory permissionFactory; private CredentialService credentialService; private AccessPermissionService accessPermissionService; @@ -141,7 +139,6 @@ public void setServices() { authenticationService = locator.getService(AuthenticationService.class); credentialService = locator.getService(CredentialService.class); accessInfoService = locator.getService(AccessInfoService.class); - permissionFactory = locator.getFactory(PermissionFactory.class); accessPermissionService = locator.getService(AccessPermissionService.class); } @@ -878,13 +875,13 @@ private AccessInfoCreator accessInfoCreatorCreator(List permissio if (targetScopeId == null) { targetScopeId = (KapuaEid) account.getId(); } - Permission permission = permissionFactory.newPermission(cucPermission.getDomain(), + Permission permission = new Permission(cucPermission.getDomain(), action, targetScopeId); permissions.add(permission); stepData.put(LAST_PERMISSION_ADDED_TO_USER, permission); } } else { - Permission permission = permissionFactory.newPermission((String) null, null, null); + Permission permission = new Permission((String) null, null, null); permissions.add(permission); } accessInfoCreator.setPermissions(permissions); diff --git a/service/user/test/src/test/java/org/eclipse/kapua/service/user/test/UserLocatorConfiguration.java b/service/user/test/src/test/java/org/eclipse/kapua/service/user/test/UserLocatorConfiguration.java index ef299ef315b..393601911e5 100644 --- a/service/user/test/src/test/java/org/eclipse/kapua/service/user/test/UserLocatorConfiguration.java +++ b/service/user/test/src/test/java/org/eclipse/kapua/service/user/test/UserLocatorConfiguration.java @@ -41,7 +41,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.user.UserFactory; import org.eclipse.kapua.service.user.UserRepository; import org.eclipse.kapua.service.user.UserService; @@ -98,11 +97,6 @@ protected void configure() { } bind(AuthorizationService.class).toInstance(mockedAuthorization); - // Inject mocked Permission Factory - PermissionFactory mockPermissionFactory = Mockito.mock(PermissionFactory.class); - bind(PermissionFactory.class).toInstance(mockPermissionFactory); - // Set KapuaMetatypeFactory for Metatype configuration - // binding Account related services final AccountRelativeFinder accountRelativeFinder = Mockito.mock(AccountRelativeFinder.class); bind(AccountRelativeFinder.class).toInstance(accountRelativeFinder); @@ -126,7 +120,6 @@ protected void configure() { new UserServiceImpl( userConfigurationManager, mockedAuthorization, - mockPermissionFactory, new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-user"), new UserImplJpaRepository(jpaRepoConfig), userFactory, diff --git a/translator/test/src/test/java/org/eclipse/kapua/translator/test/TranslatorLocatorConfiguration.java b/translator/test/src/test/java/org/eclipse/kapua/translator/test/TranslatorLocatorConfiguration.java index 8b84694b410..dc2b7656c1e 100644 --- a/translator/test/src/test/java/org/eclipse/kapua/translator/test/TranslatorLocatorConfiguration.java +++ b/translator/test/src/test/java/org/eclipse/kapua/translator/test/TranslatorLocatorConfiguration.java @@ -37,7 +37,6 @@ import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.authorization.domain.DomainRegistryService; import org.eclipse.kapua.service.authorization.permission.Permission; -import org.eclipse.kapua.service.authorization.permission.PermissionFactory; import org.eclipse.kapua.service.device.management.asset.DeviceAssetFactory; import org.eclipse.kapua.service.device.management.bundle.DeviceBundleFactory; import org.eclipse.kapua.service.device.management.configuration.DeviceConfigurationFactory; @@ -100,8 +99,6 @@ protected void configure() { // skip } bind(AuthorizationService.class).toInstance(mockedAuthorization); - // Inject mocked Permission Factory - bind(PermissionFactory.class).toInstance(Mockito.mock(PermissionFactory.class)); bind(AccountService.class).toInstance(Mockito.mock(AccountService.class)); bind(DeviceRegistryService.class).toInstance(Mockito.mock(DeviceRegistryService.class)); bind(GenericRequestFactory.class).toInstance(Mockito.mock(GenericRequestFactory.class));