You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/06/01 07:07:15 UTC

[isis-app-helloworld] 04/04: removes dependency on shiro

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

danhaywood pushed a commit to branch jpa-SNAPSHOT-secman
in repository https://gitbox.apache.org/repos/asf/isis-app-helloworld.git

commit db3b544f935db004682160d23901e14d1b241d7b
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jun 1 08:06:48 2021 +0100

    removes dependency on shiro
---
 pom.xml                                            | 42 ++++++++++++++++++++++
 .../security/scripts/UserToRole__bob_UserRw.java   |  3 +-
 .../security/scripts/UserToRole__dick_UserRo.java  |  3 +-
 ...e__joe_UserRw_but_NoDelete_or_isis2619Prop.java |  3 +-
 src/main/java/domainapp/webapp/AppManifest.java    | 21 -----------
 src/main/resources/application.yml                 | 10 +++++-
 src/main/resources/shiro.ini                       | 10 ------
 7 files changed, 57 insertions(+), 35 deletions(-)

diff --git a/pom.xml b/pom.xml
index f852f46..a82e349 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,25 @@
         </plugins>
     </build>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.isis.extensions</groupId>
+                <artifactId>isis-extensions-secman</artifactId>
+                <scope>import</scope>
+                <type>pom</type>
+                <version>2.0.0-SNAPSHOT</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.isis.testing</groupId>
+                <artifactId>isis-testing-h2console-ui</artifactId>
+                <scope>import</scope>
+                <type>pom</type>
+                <version>2.0.0-SNAPSHOT</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <dependencies>
 
         <dependency>
@@ -85,6 +104,29 @@
             <artifactId>isis-testing-h2console-ui</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.isis.extensions</groupId>
+            <artifactId>isis-extensions-secman-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.extensions</groupId>
+            <artifactId>isis-extensions-secman-integration</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.extensions</groupId>
+            <artifactId>isis-extensions-secman-persistence-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.extensions</groupId>
+            <artifactId>isis-extensions-secman-encryption-jbcrypt</artifactId>
+        </dependency>
+<!--
+        <dependency>
+            <groupId>org.apache.isis.extensions</groupId>
+            <artifactId>isis-extensions-secman-shiro-realm</artifactId>
+        </dependency>
+-->
+
     </dependencies>
 
     <profiles>
diff --git a/src/main/java/domainapp/security/scripts/UserToRole__bob_UserRw.java b/src/main/java/domainapp/security/scripts/UserToRole__bob_UserRw.java
index 12256c0..f5867e9 100644
--- a/src/main/java/domainapp/security/scripts/UserToRole__bob_UserRw.java
+++ b/src/main/java/domainapp/security/scripts/UserToRole__bob_UserRw.java
@@ -1,6 +1,7 @@
 package domainapp.security.scripts;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.extensions.secman.applib.SecmanConfiguration;
 import org.apache.isis.extensions.secman.applib.user.dom.AccountType;
 import org.apache.isis.extensions.secman.applib.user.fixtures.AbstractUserAndRolesFixtureScript;
@@ -17,7 +18,7 @@ public class UserToRole__bob_UserRw extends AbstractUserAndRolesFixtureScript {
                 AccountType.LOCAL,
                 Can.of(
                         RoleAndPerms__UserRw.ROLE_NAME
-                        , SecmanConfiguration.REGULAR_USER_ROLE_DEFAULT_NAME
+                        , IsisConfiguration.Extensions.Secman.Seed.REGULAR_USER_ROLE_NAME_DEFAULT
                         , IsisConfigurationRoleAndPermissions.ROLE_NAME
                         , IsisSudoImpersonateRoleAndPermissions.ROLE_NAME
                         , IsisExtH2ConsoleRoleAndPermissions.ROLE_NAME
diff --git a/src/main/java/domainapp/security/scripts/UserToRole__dick_UserRo.java b/src/main/java/domainapp/security/scripts/UserToRole__dick_UserRo.java
index 2f2e88d..30d70b1 100644
--- a/src/main/java/domainapp/security/scripts/UserToRole__dick_UserRo.java
+++ b/src/main/java/domainapp/security/scripts/UserToRole__dick_UserRo.java
@@ -1,6 +1,7 @@
 package domainapp.security.scripts;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.extensions.secman.applib.SecmanConfiguration;
 import org.apache.isis.extensions.secman.applib.user.dom.AccountType;
 import org.apache.isis.extensions.secman.applib.user.fixtures.AbstractUserAndRolesFixtureScript;
@@ -13,7 +14,7 @@ public class UserToRole__dick_UserRo extends AbstractUserAndRolesFixtureScript {
                 AccountType.LOCAL,
                 Can.of(
                         RoleAndPerms__UserRo.ROLE_NAME
-                        , SecmanConfiguration.REGULAR_USER_ROLE_DEFAULT_NAME
+                        , IsisConfiguration.Extensions.Secman.Seed.REGULAR_USER_ROLE_NAME_DEFAULT
                 ));
     }
 
diff --git a/src/main/java/domainapp/security/scripts/UserToRole__joe_UserRw_but_NoDelete_or_isis2619Prop.java b/src/main/java/domainapp/security/scripts/UserToRole__joe_UserRw_but_NoDelete_or_isis2619Prop.java
index ff7859f..536c4ba 100644
--- a/src/main/java/domainapp/security/scripts/UserToRole__joe_UserRw_but_NoDelete_or_isis2619Prop.java
+++ b/src/main/java/domainapp/security/scripts/UserToRole__joe_UserRw_but_NoDelete_or_isis2619Prop.java
@@ -1,6 +1,7 @@
 package domainapp.security.scripts;
 
 import org.apache.isis.commons.collections.Can;
+import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.extensions.secman.applib.SecmanConfiguration;
 import org.apache.isis.extensions.secman.applib.user.dom.AccountType;
 import org.apache.isis.extensions.secman.applib.user.fixtures.AbstractUserAndRolesFixtureScript;
@@ -17,7 +18,7 @@ public class UserToRole__joe_UserRw_but_NoDelete_or_isis2619Prop extends Abstrac
                         RoleAndPerms__UserRw.ROLE_NAME
                         , RoleAndPerms__NoDelete.ROLE_NAME  // <<< veto application behaviour
                         , RoleAndPerms__NoIsis2619Prop.ROLE_NAME  // <<< veto application behaviour
-                        , SecmanConfiguration.REGULAR_USER_ROLE_DEFAULT_NAME
+                        , IsisConfiguration.Extensions.Secman.Seed.REGULAR_USER_ROLE_NAME_DEFAULT
                         , IsisExtH2ConsoleRoleAndPermissions.ROLE_NAME
                         , IsisPersistenceJdoMetaModelRoleAndPermissions.ROLE_NAME
                 ));
diff --git a/src/main/java/domainapp/webapp/AppManifest.java b/src/main/java/domainapp/webapp/AppManifest.java
index 304b423..551c311 100644
--- a/src/main/java/domainapp/webapp/AppManifest.java
+++ b/src/main/java/domainapp/webapp/AppManifest.java
@@ -1,6 +1,5 @@
 package domainapp.webapp;
 
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.PropertySource;
@@ -8,14 +7,9 @@ import org.springframework.context.annotation.PropertySources;
 
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
-import org.apache.isis.extensions.secman.applib.SecmanConfiguration;
-import org.apache.isis.extensions.secman.applib.permission.spi.PermissionsEvaluationService;
-import org.apache.isis.extensions.secman.applib.permission.spi.PermissionsEvaluationServiceAllowBeatsVeto;
 import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleExtSecmanEncryptionJbcrypt;
 import org.apache.isis.extensions.secman.jpa.IsisModuleExtSecmanPersistenceJpa;
-import org.apache.isis.extensions.secman.shiro.IsisModuleExtSecmanRealmShiro;
 import org.apache.isis.persistence.jpa.eclipselink.IsisModuleJpaEclipselink;
-import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
 import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
 import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
 import org.apache.isis.viewer.restfulobjects.jaxrsresteasy4.IsisModuleViewerRestfulObjectsJaxrsResteasy4;
@@ -29,13 +23,11 @@ import domainapp.security.multitenancy.ApplicationTenancyEvaluatorUsingAtPath;
 @Configuration
 @Import({
         IsisModuleCoreRuntimeServices.class,
-        IsisModuleSecurityShiro.class,
         IsisModuleJpaEclipselink.class,
         IsisModuleViewerRestfulObjectsJaxrsResteasy4.class,
         IsisModuleViewerWicketViewer.class,
 
         IsisModuleExtSecmanPersistenceJpa.class,
-        IsisModuleExtSecmanRealmShiro.class,
         IsisModuleExtSecmanEncryptionJbcrypt.class,
 
         IsisModuleTestingFixturesApplib.class,
@@ -53,17 +45,4 @@ import domainapp.security.multitenancy.ApplicationTenancyEvaluatorUsingAtPath;
 })
 public class AppManifest {
 
-    @Bean
-    public SecmanConfiguration secmanConfiguration() {
-        return SecmanConfiguration.builder()
-                .adminUserName("sven").adminPassword("pass")
-                .build();
-    }
-
-    @Bean
-    public PermissionsEvaluationService permissionsEvaluationService() {
-        return new PermissionsEvaluationServiceAllowBeatsVeto();
-    }
-
-
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bedf26a..ec92a3e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -15,7 +15,6 @@ isis:
       validator:
         allow-deprecated: false
         no-params-only: true
-        explicit-object-type: true
 
   viewer:
     wicket:
@@ -53,6 +52,15 @@ isis:
       auto-create-schemas: hello,isisExtensionsSecman
       create-schema-sql-template: "CREATE SCHEMA IF NOT EXISTS %S"
 
+  extensions:
+    secman:
+      seed:
+        admin:
+          user-name: sven
+          password: pass
+      permissions-evaluation-policy: allow_beats_veto
+
+
 eclipselink:
   # if enabled, then must be run with JVM arg:
   # -javaagent:lib/spring-instrument-5.3.5.jar
diff --git a/src/main/resources/shiro.ini b/src/main/resources/shiro.ini
deleted file mode 100644
index 8f41937..0000000
--- a/src/main/resources/shiro.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[main]
-
-authenticationStrategy=org.apache.isis.extensions.secman.shiro.AuthenticationStrategyForIsisModuleSecurityRealm
-isisModuleSecurityRealm=org.apache.isis.extensions.secman.shiro.IsisModuleExtSecmanShiroRealm
-
-securityManager.authenticator.authenticationStrategy = $authenticationStrategy
-securityManager.realms = $isisModuleSecurityRealm
-
-[users]
-[roles]