You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/01/15 14:24:43 UTC
[isis] branch master updated: ISIS-2480: fixes provisioning issues
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 8c9e009 ISIS-2480: fixes provisioning issues
8c9e009 is described below
commit 8c9e00957ba93a87e0a44065120bfa52cd98a24a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 15 15:24:27 2021 +0100
ISIS-2480: fixes provisioning issues
---
.../jpa/IsisModuleExtSecmanPersistenceJpa.java | 41 +++++++++++++++++++---
.../jpa/dom/permission/ApplicationPermission.java | 21 ++++++++---
.../ApplicationPermissionRepository.java | 4 +--
.../secman/jpa/dom/role/ApplicationRole.java | 16 ++++++---
.../jpa/dom/role/ApplicationRoleRepository.java | 4 +--
.../secman/jpa/dom/tenancy/ApplicationTenancy.java | 9 +++--
.../dom/tenancy/ApplicationTenancyRepository.java | 4 +--
.../secman/jpa/dom/user/ApplicationUser.java | 18 ++++++----
.../jpa/dom/user/ApplicationUserRepository.java | 4 +--
9 files changed, 90 insertions(+), 31 deletions(-)
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/IsisModuleExtSecmanPersistenceJpa.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/IsisModuleExtSecmanPersistenceJpa.java
index 006bfab..649bd18 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/IsisModuleExtSecmanPersistenceJpa.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/IsisModuleExtSecmanPersistenceJpa.java
@@ -18,14 +18,45 @@
*/
package org.apache.isis.extensions.secman.jpa;
-import org.springframework.context.annotation.ComponentScan;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+import org.apache.isis.extensions.secman.jpa.dom.permission.ApplicationPermission;
+import org.apache.isis.extensions.secman.jpa.dom.permission.ApplicationPermissionRepository;
+import org.apache.isis.extensions.secman.jpa.dom.role.ApplicationRole;
+import org.apache.isis.extensions.secman.jpa.dom.role.ApplicationRoleRepository;
+import org.apache.isis.extensions.secman.jpa.dom.tenancy.ApplicationTenancy;
+import org.apache.isis.extensions.secman.jpa.dom.tenancy.ApplicationTenancyRepository;
+import org.apache.isis.extensions.secman.jpa.dom.user.ApplicationUser;
+import org.apache.isis.extensions.secman.jpa.dom.user.ApplicationUserRepository;
+import org.apache.isis.extensions.secman.jpa.seed.SeedSecurityModuleService;
@Configuration
-@ComponentScan(
- basePackageClasses= {
- IsisModuleExtSecmanPersistenceJpa.class
- })
+@Import({
+ ApplicationPermissionRepository.class,
+ ApplicationRoleRepository.class,
+ ApplicationTenancyRepository.class,
+ ApplicationUserRepository.class,
+
+ ApplicationPermission.class,
+ ApplicationRole.class,
+ ApplicationTenancy.class,
+ ApplicationUser.class,
+
+ SeedSecurityModuleService.class,
+
+})
+//@ComponentScan(
+// basePackageClasses= {
+// IsisModuleExtSecmanPersistenceJpa.class
+// })
+@EntityScan(basePackageClasses = {
+ ApplicationPermission.class,
+ ApplicationRole.class,
+ ApplicationTenancy.class,
+ ApplicationUser.class,
+})
public class IsisModuleExtSecmanPersistenceJpa {
}
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermission.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermission.java
index 46f05f6..fd409c7 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermission.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermission.java
@@ -26,6 +26,9 @@ import java.util.function.Function;
import javax.inject.Inject;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
import org.apache.isis.applib.annotation.BookmarkPolicy;
import org.apache.isis.applib.annotation.DomainObject;
@@ -110,17 +113,25 @@ import lombok.experimental.UtilityClass;
@DomainObjectLayout(
bookmarking = BookmarkPolicy.AS_CHILD
)
-public class ApplicationPermission implements org.apache.isis.extensions.secman.api.permission.ApplicationPermission, Comparable<ApplicationPermission> {
+public class ApplicationPermission
+implements
+ org.apache.isis.extensions.secman.api.permission.ApplicationPermission,
+ Comparable<ApplicationPermission> {
private static final int TYPICAL_LENGTH_TYPE = 7; // ApplicationFeatureType.PACKAGE is longest
-
-
+
+ @Inject private transient ApplicationFeatureRepositoryDefault applicationFeatureRepository;
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
// -- role (property)
public static class RoleDomainEvent extends PropertyDomainEvent<ApplicationRole> {}
- @Column(name="roleId", nullable=false)
+ @JoinColumn(name="roleId", nullable=false)
@Property(
domainEvent = RoleDomainEvent.class,
editing = Editing.DISABLED
@@ -303,6 +314,6 @@ public class ApplicationPermission implements org.apache.isis.extensions.secman.
}
- @Inject private ApplicationFeatureRepositoryDefault applicationFeatureRepository;
+
}
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermissionRepository.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermissionRepository.java
index f7a6d4d..378d569 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermissionRepository.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/permission/ApplicationPermissionRepository.java
@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.inject.Named;
-import org.springframework.stereotype.Repository;
+import org.springframework.stereotype.Service;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.appfeat.ApplicationMemberType;
@@ -55,7 +55,7 @@ import org.apache.isis.extensions.secman.jpa.dom.user.ApplicationUser;
import lombok.NonNull;
import lombok.val;
-@Repository
+@Service
@Named("isisExtSecman.applicationPermissionRepository")
public class ApplicationPermissionRepository
implements org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRepository<ApplicationPermission> {
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRole.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRole.java
index 1eefafb..6d78d30 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRole.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRole.java
@@ -26,6 +26,8 @@ import java.util.TreeSet;
import javax.inject.Inject;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
import javax.persistence.ManyToMany;
import org.apache.isis.applib.annotation.BookmarkPolicy;
@@ -89,10 +91,16 @@ import lombok.Setter;
bookmarking = BookmarkPolicy.AS_ROOT
)
public class ApplicationRole
-implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparable<ApplicationRole> {
+implements
+ org.apache.isis.extensions.secman.api.role.ApplicationRole,
+ Comparable<ApplicationRole> {
- @Inject private ApplicationFeatureRepository applicationFeatureRepository;
- @Inject private ApplicationPermissionRepository applicationPermissionRepository;
+ @Inject private transient ApplicationFeatureRepository applicationFeatureRepository;
+ @Inject private transient ApplicationPermissionRepository applicationPermissionRepository;
+
+ @Id
+ @GeneratedValue
+ private Long id;
// -- name (property)
@@ -166,7 +174,7 @@ implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparabl
public static class UsersDomainEvent extends CollectionDomainEvent<ApplicationUser> {}
- @ManyToMany(mappedBy = "roles")
+ @ManyToMany
@Collection(
domainEvent = UsersDomainEvent.class,
editing = Editing.DISABLED
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRoleRepository.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRoleRepository.java
index d01e0ac..624d212 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRoleRepository.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/role/ApplicationRoleRepository.java
@@ -26,7 +26,7 @@ import java.util.Optional;
import javax.inject.Inject;
import javax.inject.Named;
-import org.springframework.stereotype.Repository;
+import org.springframework.stereotype.Service;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.factory.FactoryService;
@@ -40,7 +40,7 @@ import org.apache.isis.extensions.secman.model.dom.permission.ApplicationPermiss
import lombok.val;
-@Repository
+@Service
@Named("isisExtSecman.applicationRoleRepository")
public class ApplicationRoleRepository
implements org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository<ApplicationRole> {
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancy.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancy.java
index 2b9c185..f5c83c7 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancy.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancy.java
@@ -25,6 +25,7 @@ import java.util.TreeSet;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import org.apache.isis.applib.annotation.BookmarkPolicy;
@@ -85,8 +86,10 @@ import lombok.Setter;
@DomainObjectLayout(
bookmarking = BookmarkPolicy.AS_ROOT
)
-public class ApplicationTenancy implements Comparable<ApplicationTenancy>,
-org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancy {
+public class ApplicationTenancy
+implements
+ Comparable<ApplicationTenancy>,
+ org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancy {
// -- name (property, title)
@@ -125,7 +128,7 @@ org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancy {
public static class ParentDomainEvent extends PropertyDomainEvent<ApplicationTenancy> {}
- @Column(name="parentPath", nullable=true)
+ @JoinColumn(name="parentPath", nullable=true)
@Property(
domainEvent = ParentDomainEvent.class,
editing = Editing.DISABLED
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancyRepository.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancyRepository.java
index b07b476..ba02450 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancyRepository.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/tenancy/ApplicationTenancyRepository.java
@@ -25,7 +25,7 @@ import java.util.concurrent.Callable;
import javax.inject.Inject;
import javax.inject.Named;
-import org.springframework.stereotype.Repository;
+import org.springframework.stereotype.Service;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.factory.FactoryService;
@@ -38,7 +38,7 @@ import org.apache.isis.extensions.secman.jpa.dom.user.ApplicationUser;
import lombok.NonNull;
import lombok.val;
-@Repository
+@Service
@Named("isisExtSecman.applicationTenancyRepository")
public class ApplicationTenancyRepository
implements org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancyRepository<ApplicationTenancy> {
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUser.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUser.java
index 91a07c7..0d21e93 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUser.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUser.java
@@ -26,6 +26,8 @@ import java.util.TreeSet;
import javax.inject.Inject;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@@ -124,18 +126,22 @@ import lombok.val;
public class ApplicationUser implements Comparable<ApplicationUser>,
org.apache.isis.extensions.secman.api.user.ApplicationUser {
- @Inject private ApplicationUserRepository applicationUserRepository;
- @Inject private ApplicationPermissionRepository applicationPermissionRepository;
- @Inject private UserService userService;
+ @Inject private transient ApplicationUserRepository applicationUserRepository;
+ @Inject private transient ApplicationPermissionRepository applicationPermissionRepository;
+ @Inject private transient UserService userService;
/**
* Optional service, if configured then is used to evaluate permissions within
* {@link org.apache.isis.extensions.secman.api.permission.ApplicationPermissionValueSet#evaluate(ApplicationFeatureId, ApplicationPermissionMode)}
* else will fallback to a {@link org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationService#DEFAULT default}
* implementation.
*/
- @Inject private PermissionsEvaluationService permissionsEvaluationService;
- @Inject private SecurityModuleConfig configBean;
+ @Inject private transient PermissionsEvaluationService permissionsEvaluationService;
+ @Inject private transient SecurityModuleConfig configBean;
+ @Id
+ @GeneratedValue
+ private Long id;
+
// -- name (derived property)
public static class NameDomainEvent extends PropertyDomainEvent<String> {}
@@ -364,7 +370,7 @@ org.apache.isis.extensions.secman.api.user.ApplicationUser {
// @javax.jdo.annotations.Persistent(table="ApplicationUserRoles")
// @javax.jdo.annotations.Join(column="userId")
// @javax.jdo.annotations.Element(column="roleId")
- @ManyToMany(mappedBy = "roles")
+ @ManyToMany(mappedBy = "users")
@JoinTable(
name = "ApplicationUserRoles",
joinColumns = {@JoinColumn(name = "userId")},
diff --git a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserRepository.java b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserRepository.java
index ae185d7..0d3f7d9 100644
--- a/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserRepository.java
+++ b/extensions/security/secman/persistence-jpa/src/main/java/org/apache/isis/extensions/secman/jpa/dom/user/ApplicationUserRepository.java
@@ -27,7 +27,7 @@ import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Named;
-import org.springframework.stereotype.Repository;
+import org.springframework.stereotype.Service;
import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.eventbus.EventBusService;
@@ -51,7 +51,7 @@ import org.apache.isis.extensions.secman.model.dom.user.ApplicationUser_unlock;
import lombok.NonNull;
import lombok.val;
-@Repository
+@Service
@Named("isisExtSecman.applicationUserRepository")
public class ApplicationUserRepository
implements org.apache.isis.extensions.secman.api.user.ApplicationUserRepository<ApplicationUser> {