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 2019/08/01 15:46:36 UTC

[isis] branch v2 updated: ISIS-2156 adds more configuration options to Secman's config bean

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new 6215241  ISIS-2156 adds more configuration options to Secman's config bean
6215241 is described below

commit 6215241880900c11d92f2b9a0ed68a152675debd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Aug 1 17:46:27 2019 +0200

    ISIS-2156 adds more configuration options to Secman's config bean
    
    currently we have an inconsistent transactional state when running the
    ShiroSecmanLdapTest class with all its tests; this does not occur when
    running tests separately
---
 .../jdo/persistence/IsisTransactionManagerJdo.java |  4 +++
 .../isis/testdomain/shiro/ShiroSecmanLdapTest.java | 20 ++++++++++-----
 .../isis/testdomain/shiro/ShiroSecmanTest.java     | 12 ++++++---
 .../secman/api/SecurityModuleConfig.java           | 30 +++++++++++++++++++---
 .../secman/jdo/dom/role/ApplicationRole.java       |  6 +++--
 .../secman/jdo/dom/user/ApplicationUser.java       | 15 ++++++-----
 .../jdo/seed/SeedUsersAndRolesFixtureScript.java   |  6 ++---
 .../IsisModuleSecurityAdminRoleAndPermissions.java | 24 +++++++++--------
 .../seed/scripts/IsisModuleSecurityAdminUser.java  | 16 +++++++-----
 ...sisModuleSecurityFixtureRoleAndPermissions.java |  7 +++--
 ...oduleSecurityRegularUserRoleAndPermissions.java |  2 --
 11 files changed, 92 insertions(+), 50 deletions(-)

diff --git a/core/plugins/jdo-common/src/main/java/org/apache/isis/jdo/persistence/IsisTransactionManagerJdo.java b/core/plugins/jdo-common/src/main/java/org/apache/isis/jdo/persistence/IsisTransactionManagerJdo.java
index 7f728e1..3bceeca 100644
--- a/core/plugins/jdo-common/src/main/java/org/apache/isis/jdo/persistence/IsisTransactionManagerJdo.java
+++ b/core/plugins/jdo-common/src/main/java/org/apache/isis/jdo/persistence/IsisTransactionManagerJdo.java
@@ -172,6 +172,10 @@ class IsisTransactionManagerJdo implements SessionScopedComponent {
             endTransactionInternal(txObject);
         } finally {
         	val tx = (IsisTransactionJdo) txObject.getCurrentTransaction();
+        	if(tx==null) {
+        		log.error("race condition when ending the current transaction object");
+        		return;
+        	}
             val state = tx.getState();
             if(isTopLevel && !state.isComplete()) {
                 log.error("endTransaction: when top-level, "
diff --git a/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java b/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
index 22d27c2..aac52ca 100644
--- a/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
+++ b/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
@@ -27,6 +27,7 @@ import javax.inject.Inject;
 
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
+import org.apache.isis.extensions.secman.api.user.ApplicationUser;
 import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
 import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
 import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
@@ -71,7 +72,7 @@ class ShiroSecmanLdapTest extends AbstractShiroTest {
 	@Inject LdapServerService ldapServerService;
 	@Inject ApplicationUserRepository applicationUserRepository;
 	@Inject ApplicationRoleRepository applicationRoleRepository;
-	@Inject SecurityModuleConfig securityModuleConfig;
+	@Inject SecurityModuleConfig securityConfig;
 	
 	@BeforeAll
 	static void beforeClass() {
@@ -87,15 +88,20 @@ class ShiroSecmanLdapTest extends AbstractShiroTest {
 		tearDownShiro();
 	}
 	
+	private ApplicationUser setupSvenInDb() {
+		val regularUserRoleName = securityConfig.getRegularUserRoleName();
+		val regularUserRole = applicationRoleRepository.findByName(regularUserRoleName);
+		val enabled = true;
+		val svenUser = applicationUserRepository
+				.newDelegateUser(LdapEmbeddedServer.SVEN_PRINCIPAL, regularUserRole, enabled);
+		return svenUser;
+	}
+	
+	
 	@Test
 	void loginLogoutRoundtrip() {
 		
-		// setup sven account in DB
-		val regularUserRoleName = securityModuleConfig.getRegularUserRoleName();
-		val regularUserRole = applicationRoleRepository.findByName(regularUserRoleName);
-		val enabled = true;
-		applicationUserRepository.newDelegateUser(LdapEmbeddedServer.SVEN_PRINCIPAL, regularUserRole, enabled);
-		//
+		setupSvenInDb();
 		
 		val secMan = SecurityUtils.getSecurityManager();
 		assertNotNull(secMan);
diff --git a/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java b/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
index caebbd3..8646697 100644
--- a/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
+++ b/examples/smoketest/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
@@ -23,9 +23,11 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
+import javax.inject.Inject;
+
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
 import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.jdo.seed.scripts.IsisModuleSecurityAdminUser;
 import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
 import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
 import org.apache.isis.testdomain.jdo.JdoTestDomainModule_withShiro;
@@ -57,6 +59,8 @@ import lombok.val;
     IsisBootSecmanEncryptionJbcrypt.class,
 })
 class ShiroSecmanTest extends AbstractShiroTest {
+	
+	@Inject SecurityModuleConfig securityConfig;
 
 	@BeforeAll
 	static void beforeClass() {
@@ -83,8 +87,8 @@ class ShiroSecmanTest extends AbstractShiroTest {
 		assertFalse(subject.isAuthenticated());
 
 		val token = (AuthenticationToken) new UsernamePasswordToken(
-				IsisModuleSecurityAdminUser.USER_NAME,
-				IsisModuleSecurityAdminUser.PASSWORD);
+				securityConfig.getAdminUserName(),
+				securityConfig.getAdminPassword());
 
 		subject.login(token);
 		assertTrue(subject.isAuthenticated());
@@ -105,7 +109,7 @@ class ShiroSecmanTest extends AbstractShiroTest {
 		assertFalse(subject.isAuthenticated());
 
 		val token = (AuthenticationToken) new UsernamePasswordToken(
-				IsisModuleSecurityAdminUser.USER_NAME,
+				securityConfig.getAdminUserName(),
 				"invalid-pass");
 		
 		assertThrows(Exception.class, ()->{
diff --git a/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModuleConfig.java b/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModuleConfig.java
index 15e4b47..61fc5d7 100644
--- a/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModuleConfig.java
+++ b/extensions/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModuleConfig.java
@@ -20,11 +20,35 @@ package org.apache.isis.extensions.secman.api;
 
 import lombok.Builder;
 import lombok.Getter;
+import lombok.NonNull;
 
 @Builder
 public class SecurityModuleConfig {
-	
-	@Getter @Builder.Default 
+
+	// -- ROLES
+
+	@Getter @Builder.Default @NonNull
 	final String regularUserRoleName = "isis-module-security-regular-user";
-	
+
+	@Getter @Builder.Default @NonNull
+	final String fixtureRoleName = "isis-module-security-fixtures";
+
+	@Getter @Builder.Default @NonNull
+	final String adminRoleName = "isis-module-security-admin";
+
+	// -- ADMIN
+
+	@Getter @Builder.Default @NonNull
+	final String adminUserName = "isis-module-security-admin";
+
+	@Getter @Builder.Default @NonNull
+	final String adminPassword = "pass";
+
+	@Getter @Builder.Default @NonNull
+	final String[] adminStickyPackagePermissions = new String[]{
+			"org.apache.isis.extensions.secman.api",
+			"org.apache.isis.extensions.secman.jdo.dom",
+	};
+
+
 }
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
index efc1c67..a4f57f7 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
@@ -55,6 +55,7 @@ import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRule;
 import org.apache.isis.extensions.secman.jdo.dom.permission.ApplicationPermission;
@@ -546,7 +547,7 @@ implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparabl
             final ApplicationFeatureType type,
             @ParameterLayout(named="Feature", typicalLength=ApplicationFeature.TYPICAL_LENGTH_MEMBER_NAME)
             final String featureFqn) {
-        if(isAdminRole() && IsisModuleSecurityAdminRoleAndPermissions.oneOf(featureFqn)) {
+        if(isAdminRole() && IsisModuleSecurityAdminRoleAndPermissions.oneOf(configBean, featureFqn)) {
             return "Cannot remove top-level package permissions for the admin role.";
         }
         return null;
@@ -684,7 +685,7 @@ implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparabl
     @Programmatic
     public boolean isAdminRole() {
         final ApplicationRole adminRole = applicationRoleRepository.findByNameCached(
-                IsisModuleSecurityAdminRoleAndPermissions.ROLE_NAME);
+        		configBean.getAdminRoleName());
         return this == adminRole;
     }
     
@@ -729,6 +730,7 @@ implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparabl
     @Inject ApplicationPermissionRepository applicationPermissionRepository;
     @Inject ApplicationUserRepository applicationUserRepository;
     @Inject ApplicationRoleRepository applicationRoleRepository;
+    @Inject SecurityModuleConfig configBean;
     
 
 }
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
index faf6213..fd4623f 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
@@ -57,6 +57,7 @@ import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.encryption.PasswordEncryptionService;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionValueSet;
@@ -67,8 +68,6 @@ import org.apache.isis.extensions.secman.jdo.dom.permission.ApplicationPermissio
 import org.apache.isis.extensions.secman.jdo.dom.permission.ApplicationPermissionRepository;
 import org.apache.isis.extensions.secman.jdo.dom.role.ApplicationRole;
 import org.apache.isis.extensions.secman.jdo.dom.role.ApplicationRoleRepository;
-import org.apache.isis.extensions.secman.jdo.seed.scripts.IsisModuleSecurityAdminRoleAndPermissions;
-import org.apache.isis.extensions.secman.jdo.seed.scripts.IsisModuleSecurityAdminUser;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
 
 import lombok.Getter;
@@ -637,7 +636,7 @@ org.apache.isis.extensions.secman.api.user.ApplicationUser {
     }
     public String disableLock() {
         if(isAdminUser()) {
-            return "Cannot disable the '" + IsisModuleSecurityAdminUser.USER_NAME + "' user.";
+            return "Cannot disable the '" + configBean.getAdminUserName() + "' user.";
         }
         return getStatus() == ApplicationUserStatus.DISABLED ? "Status is already set to DISABLE": null;
     }
@@ -933,11 +932,9 @@ org.apache.isis.extensions.secman.api.user.ApplicationUser {
     // -- isAdminUser (programmatic)
     @Programmatic
     public boolean isAdminUser() {
-        return IsisModuleSecurityAdminUser.USER_NAME.equals(getName());
+        return configBean.getAdminUserName().equals(getName());
     }
 
-    
-
     // -- helpers
     boolean isForSelfOrRunAsAdministrator() {
         return isForSelf() || isRunAsAdministrator();
@@ -950,12 +947,15 @@ org.apache.isis.extensions.secman.api.user.ApplicationUser {
     boolean isRunAsAdministrator() {
         final UserMemento currentUser = userService.getUser();
         final List<RoleMemento> roles = currentUser.getRoles();
+        
+        val adminRoleSuffix = ":" + configBean.getAdminRoleName();
+        
         for (final RoleMemento role : roles) {
             final String roleName = role.getName();
             // format is realmName:roleName.
             // since we don't know what the realm's name is (depends on its configuration in shiro.ini),
             // simply check that the last part matches the role name.
-            if(roleName.endsWith(IsisModuleSecurityAdminRoleAndPermissions.ROLE_NAME)) {
+            if(roleName.endsWith(adminRoleSuffix)) {
                 return true;
             }
         }
@@ -1003,5 +1003,6 @@ org.apache.isis.extensions.secman.api.user.ApplicationUser {
      * implementation.
      */
     @Inject PermissionsEvaluationService permissionsEvaluationService;
+    @Inject SecurityModuleConfig configBean;
     
 }
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedUsersAndRolesFixtureScript.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedUsersAndRolesFixtureScript.java
index 8679841..027f5b6 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedUsersAndRolesFixtureScript.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedUsersAndRolesFixtureScript.java
@@ -52,12 +52,12 @@ public class SeedUsersAndRolesFixtureScript extends FixtureScript {
         executionContext.executeChild(this, new GlobalTenancy());
 
         // security module
-        executionContext.executeChild(this, new IsisModuleSecurityAdminRoleAndPermissions());
+        executionContext.executeChild(this, new IsisModuleSecurityAdminRoleAndPermissions(configBean));
 
-        executionContext.executeChild(this, new IsisModuleSecurityFixtureRoleAndPermissions());
+        executionContext.executeChild(this, new IsisModuleSecurityFixtureRoleAndPermissions(configBean));
         executionContext.executeChild(this, new IsisModuleSecurityRegularUserRoleAndPermissions(configBean));
 
-        executionContext.executeChild(this, new IsisModuleSecurityAdminUser());
+        executionContext.executeChild(this, new IsisModuleSecurityAdminUser(configBean));
 
         // isis applib
         executionContext.executeChild(this, new IsisApplibFixtureResultsRoleAndPermissions());
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminRoleAndPermissions.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminRoleAndPermissions.java
index 2899967..acce40e 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminRoleAndPermissions.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminRoleAndPermissions.java
@@ -20,31 +20,33 @@ package org.apache.isis.extensions.secman.jdo.seed.scripts;
 
 import java.util.Objects;
 
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRule;
 
 public class IsisModuleSecurityAdminRoleAndPermissions extends AbstractRoleAndPermissionsFixtureScript {
 
-    public static final String ROLE_NAME = "isis-module-security-admin";
-    public static final String ORG_ISISADDONS_MODULE_SECURITY_APP = "org.apache.isis.extensions.secman.jdo.app";
-    public static final String ORG_ISISADDONS_MODULE_SECURITY_DOM = "org.apache.isis.extensions.secman.jdo.dom";
+	private String[] adminStickyPackagePermissions;
 
-    public IsisModuleSecurityAdminRoleAndPermissions() {
-        super(ROLE_NAME, "Administer security");
+    public IsisModuleSecurityAdminRoleAndPermissions(SecurityModuleConfig configBean) {
+        super(configBean.getAdminRoleName(), "Administer security");
+        this.adminStickyPackagePermissions = configBean.getAdminStickyPackagePermissions();
     }
 
-
     @Override
     protected void execute(ExecutionContext executionContext) {
         newPackagePermissions(
                 ApplicationPermissionRule.ALLOW,
                 ApplicationPermissionMode.CHANGING,
-                ORG_ISISADDONS_MODULE_SECURITY_APP,
-                ORG_ISISADDONS_MODULE_SECURITY_DOM);
+                adminStickyPackagePermissions);
     }
 
-    public static boolean oneOf(String featureFqn) {
-        return Objects.equals(featureFqn, ORG_ISISADDONS_MODULE_SECURITY_APP) ||
-               Objects.equals(featureFqn, ORG_ISISADDONS_MODULE_SECURITY_DOM);
+    public static boolean oneOf(SecurityModuleConfig configBean, String featureFqn) {
+        for(String stickyPackage : configBean.getAdminStickyPackagePermissions()) {
+        	if(Objects.equals(featureFqn, stickyPackage)) {
+        		return true;
+        	}
+        }
+        return false;
     }
 }
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminUser.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminUser.java
index 44b94fb..083f815 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminUser.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityAdminUser.java
@@ -20,16 +20,18 @@ package org.apache.isis.extensions.secman.jdo.seed.scripts;
 
 import java.util.Arrays;
 
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.user.AccountType;
 
 public class IsisModuleSecurityAdminUser extends AbstractUserAndRolesFixtureScript {
 
-    public static final String USER_NAME = "isis-module-security-admin";
-    public static final String PASSWORD = "pass";
-
-    public IsisModuleSecurityAdminUser() {
-        super(USER_NAME, PASSWORD, null,
-                GlobalTenancy.TENANCY_PATH, AccountType.LOCAL,
-                Arrays.asList(IsisModuleSecurityAdminRoleAndPermissions.ROLE_NAME));
+    public IsisModuleSecurityAdminUser(SecurityModuleConfig configBean) {
+        super(
+        		configBean.getAdminUserName(), 
+        		configBean.getAdminPassword(),
+        		null,
+                GlobalTenancy.TENANCY_PATH, 
+                AccountType.LOCAL,
+                Arrays.asList(configBean.getAdminRoleName()));
     }
 }
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityFixtureRoleAndPermissions.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityFixtureRoleAndPermissions.java
index da04301..c2b6cd6 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityFixtureRoleAndPermissions.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityFixtureRoleAndPermissions.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.extensions.secman.jdo.seed.scripts;
 
+import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRule;
 
@@ -26,10 +27,8 @@ import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRul
  */
 public class IsisModuleSecurityFixtureRoleAndPermissions extends AbstractRoleAndPermissionsFixtureScript {
 
-    public static final String ROLE_NAME = "isis-module-security-fixtures";
-
-    public IsisModuleSecurityFixtureRoleAndPermissions() {
-        super(ROLE_NAME, "Security module fixtures");
+    public IsisModuleSecurityFixtureRoleAndPermissions(SecurityModuleConfig configBean) {
+        super(configBean.getFixtureRoleName(), "Security module fixtures");
     }
 
     @Override
diff --git a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityRegularUserRoleAndPermissions.java b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityRegularUserRoleAndPermissions.java
index 0ec2fd6..24ebadd 100644
--- a/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityRegularUserRoleAndPermissions.java
+++ b/extensions/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/scripts/IsisModuleSecurityRegularUserRoleAndPermissions.java
@@ -31,8 +31,6 @@ import org.apache.isis.extensions.secman.model.app.user.MeService;
  */
 public class IsisModuleSecurityRegularUserRoleAndPermissions extends AbstractRoleAndPermissionsFixtureScript {
 
-    //public static final String ROLE_NAME = "isis-module-security-regular-user"; .. moved to SecurityModuleConfig
-
     public IsisModuleSecurityRegularUserRoleAndPermissions(SecurityModuleConfig configBean) {
         super(configBean.getRegularUserRoleName(), "Regular user of the security module");
     }