You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Stephen Cameron <st...@gmail.com> on 2015/09/27 07:40:29 UTC

security module questions

Hi,

I am making use of the Apache Isis security module addon. I've configured
it using the new App Manifest means, but have one issue, which is how is
the home page being created now?

I have the home page as it appears in the security demo, rather than the
one that I created in my app.  Its not clear to me why Isis is picking up
the alernative SecurityModuleApplication rather than my customised
HomePageViewModel.

To make it work with the AppManifest, I have the following:

package domainapp.app;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.isisaddons.module.security.dom.DomainAppSecurityDomModule;
import org.isisaddons.module.security.seed.DomainAppSecuritySeedModule;

import au.com.scds.chats.dom.DomainAppDomainModule;

import domainapp.fixture.DomainAppFixtureModule;

/**
 * Bootstrap the application.
 */
public class DomainAppAppManifest implements AppManifest {

    /**
     * Load all services and entities found in (the packages and
subpackages within) these modules
     */
    @Override
    public List<Class<?>> getModules() {
        return Arrays.asList(
                DomainAppDomainModule.class,  // domain (entities and
repositories)
                DomainAppFixtureModule.class, // fixtures
                DomainAppAppModule.class,      // home page service etc
                DomainAppSecurityDomModule.class,  //security
                DomainAppSecuritySeedModule.class, //seed the security
admin user

org.isisaddons.wicket.gmap3.cpt.service.Gmap3ServiceModule.class //Google
Gmap Geocoding Service
        );
    }

    /**
     * No additional services.
     */
    @Override
    public List<Class<?>> getAdditionalServices() {
        //return Collections.emptyList();
        return Arrays.asList(

org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,

org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
        );
    }


I've added these two 'marker' classes to my app so the security domain
service classes will be discovered:

org.isisaddons.module.security.dom.DomainAppSecurityDomModule.class
org.isisaddons.module.security.seed.DomainAppSecuritySeedModule.class


Steve C.

Re: security module questions

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Good stuff.
Cheers, Dan
On 27 Sep 2015 09:38, "Stephen Cameron" <st...@gmail.com> wrote:

> sure enough, when I gave package access to domainapp.app.services.homepage
> to my general user - Voila!
>
> On Sun, Sep 27, 2015 at 6:09 PM, Stephen Cameron <
> steve.cameron.62@gmail.com
> > wrote:
>
> > re " I have the home page as it appears in the security demo"
> >
> > sorry, that is not so, its the right 'welcome' page.  So must be just
> > permissions.
> >
> > On Sun, Sep 27, 2015 at 5:13 PM, Dan Haywood <
> dan@haywood-associates.co.uk
> > > wrote:
> >
> >> Not sure.
> >>
> >> What I can tell you is that the home page is simply the result of the
> >> framework invoking a domain service annotated with @HomePage (or to be
> >> more
> >> precise, one that has a HomePageFacet). If one cannot be found in all of
> >> the services, then the index.html page (somewhere in the webapp module
> and
> >> as specified in your app's subclass of IsisWebApplication) will be
> >> rendered. If more than one such service can be found, then the app will
> >> fail to boot with a metamodel validation error.
> >>
> >> My guess is that the domain service you have with an @HomePage
> annotation
> >> isn't within the last of packages derived from the module package names.
> >> As
> >> a quick check, you could add the service class itself to the list
> returned
> >> from getModules() and see what happens.
> >>
> >> With respect to the marker classes you've added for security module,
> there
> >> is a class called simply SecurityModule that you could use.
> >>
> >> HTH
> >>
> >> Dan
> >> On 27 Sep 2015 07:42, "Stephen Cameron" <st...@gmail.com>
> >> wrote:
> >>
> >> > I see the following on the home page always, even when a new user logs
> >> in
> >> > other than isis-module-security-admin:
> >> >
> >> > Apache Isis <http://isis.apache.org>™ is a platform to let you
> rapidly
> >> > develop domain-driven apps in Java.
> >> >
> >> > This app has been generated using Apache Isis' SimpleApp
> >> > <
> >> http://isis.apache.org/intro/getting-started/simple%61pp-archetype.html
> >
> >> > archetype, to create a purposefully minimal application that
> >> nevertheless
> >> > includes fixture data, integration tests and BDD specs.
> >> >
> >> > The app itself consists of a single domain class, SimpleObject
> >> > <
> >> >
> >>
> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObject.java
> >> > >,
> >> > along with an equally simple (factory/repository) domain service,
> >> > SimpleObjects
> >> > <
> >> >
> >>
> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObjects.java
> >> > >.
> >> >
> >> >
> >> > For more details, see the Apache Isis website
> >> > <http://isis.apache.org/documentation.html>.
> >> >
> >> > On Sun, Sep 27, 2015 at 3:40 PM, Stephen Cameron <
> >> > steve.cameron.62@gmail.com
> >> > > wrote:
> >> >
> >> > > Hi,
> >> > >
> >> > > I am making use of the Apache Isis security module addon. I've
> >> configured
> >> > > it using the new App Manifest means, but have one issue, which is
> how
> >> is
> >> > > the home page being created now?
> >> > >
> >> > > I have the home page as it appears in the security demo, rather than
> >> the
> >> > > one that I created in my app.  Its not clear to me why Isis is
> >> picking up
> >> > > the alernative SecurityModuleApplication rather than my customised
> >> > > HomePageViewModel.
> >> > >
> >> > > To make it work with the AppManifest, I have the following:
> >> > >
> >> > > package domainapp.app;
> >> > >
> >> > > import java.util.Arrays;
> >> > > import java.util.Collections;
> >> > > import java.util.List;
> >> > > import java.util.Map;
> >> > >
> >> > > import org.apache.isis.applib.AppManifest;
> >> > > import org.apache.isis.applib.fixturescripts.FixtureScript;
> >> > > import
> org.isisaddons.module.security.dom.DomainAppSecurityDomModule;
> >> > > import
> >> org.isisaddons.module.security.seed.DomainAppSecuritySeedModule;
> >> > >
> >> > > import au.com.scds.chats.dom.DomainAppDomainModule;
> >> > >
> >> > > import domainapp.fixture.DomainAppFixtureModule;
> >> > >
> >> > > /**
> >> > >  * Bootstrap the application.
> >> > >  */
> >> > > public class DomainAppAppManifest implements AppManifest {
> >> > >
> >> > >     /**
> >> > >      * Load all services and entities found in (the packages and
> >> > > subpackages within) these modules
> >> > >      */
> >> > >     @Override
> >> > >     public List<Class<?>> getModules() {
> >> > >         return Arrays.asList(
> >> > >                 DomainAppDomainModule.class,  // domain (entities
> and
> >> > > repositories)
> >> > >                 DomainAppFixtureModule.class, // fixtures
> >> > >                 DomainAppAppModule.class,      // home page service
> >> etc
> >> > >                 DomainAppSecurityDomModule.class,  //security
> >> > >                 DomainAppSecuritySeedModule.class, //seed the
> security
> >> > > admin user
> >> > >
> >> > > org.isisaddons.wicket.gmap3.cpt.service.Gmap3ServiceModule.class
> >> //Google
> >> > > Gmap Geocoding Service
> >> > >         );
> >> > >     }
> >> > >
> >> > >     /**
> >> > >      * No additional services.
> >> > >      */
> >> > >     @Override
> >> > >     public List<Class<?>> getAdditionalServices() {
> >> > >         //return Collections.emptyList();
> >> > >         return Arrays.asList(
> >> > >
> >> > >
> >> >
> >>
> org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,
> >> > >
> >> > >
> >> >
> >>
> org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
> >> > >         );
> >> > >     }
> >> > >
> >> > >
> >> > > I've added these two 'marker' classes to my app so the security
> domain
> >> > > service classes will be discovered:
> >> > >
> >> > > org.isisaddons.module.security.dom.DomainAppSecurityDomModule.class
> >> > >
> org.isisaddons.module.security.seed.DomainAppSecuritySeedModule.class
> >> > >
> >> > >
> >> > > Steve C.
> >> > >
> >> >
> >>
> >
> >
>

Re: security module questions

Posted by Stephen Cameron <st...@gmail.com>.
sure enough, when I gave package access to domainapp.app.services.homepage
to my general user - Voila!

On Sun, Sep 27, 2015 at 6:09 PM, Stephen Cameron <steve.cameron.62@gmail.com
> wrote:

> re " I have the home page as it appears in the security demo"
>
> sorry, that is not so, its the right 'welcome' page.  So must be just
> permissions.
>
> On Sun, Sep 27, 2015 at 5:13 PM, Dan Haywood <dan@haywood-associates.co.uk
> > wrote:
>
>> Not sure.
>>
>> What I can tell you is that the home page is simply the result of the
>> framework invoking a domain service annotated with @HomePage (or to be
>> more
>> precise, one that has a HomePageFacet). If one cannot be found in all of
>> the services, then the index.html page (somewhere in the webapp module and
>> as specified in your app's subclass of IsisWebApplication) will be
>> rendered. If more than one such service can be found, then the app will
>> fail to boot with a metamodel validation error.
>>
>> My guess is that the domain service you have with an @HomePage annotation
>> isn't within the last of packages derived from the module package names.
>> As
>> a quick check, you could add the service class itself to the list returned
>> from getModules() and see what happens.
>>
>> With respect to the marker classes you've added for security module, there
>> is a class called simply SecurityModule that you could use.
>>
>> HTH
>>
>> Dan
>> On 27 Sep 2015 07:42, "Stephen Cameron" <st...@gmail.com>
>> wrote:
>>
>> > I see the following on the home page always, even when a new user logs
>> in
>> > other than isis-module-security-admin:
>> >
>> > Apache Isis <http://isis.apache.org>™ is a platform to let you rapidly
>> > develop domain-driven apps in Java.
>> >
>> > This app has been generated using Apache Isis' SimpleApp
>> > <
>> http://isis.apache.org/intro/getting-started/simple%61pp-archetype.html>
>> > archetype, to create a purposefully minimal application that
>> nevertheless
>> > includes fixture data, integration tests and BDD specs.
>> >
>> > The app itself consists of a single domain class, SimpleObject
>> > <
>> >
>> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObject.java
>> > >,
>> > along with an equally simple (factory/repository) domain service,
>> > SimpleObjects
>> > <
>> >
>> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObjects.java
>> > >.
>> >
>> >
>> > For more details, see the Apache Isis website
>> > <http://isis.apache.org/documentation.html>.
>> >
>> > On Sun, Sep 27, 2015 at 3:40 PM, Stephen Cameron <
>> > steve.cameron.62@gmail.com
>> > > wrote:
>> >
>> > > Hi,
>> > >
>> > > I am making use of the Apache Isis security module addon. I've
>> configured
>> > > it using the new App Manifest means, but have one issue, which is how
>> is
>> > > the home page being created now?
>> > >
>> > > I have the home page as it appears in the security demo, rather than
>> the
>> > > one that I created in my app.  Its not clear to me why Isis is
>> picking up
>> > > the alernative SecurityModuleApplication rather than my customised
>> > > HomePageViewModel.
>> > >
>> > > To make it work with the AppManifest, I have the following:
>> > >
>> > > package domainapp.app;
>> > >
>> > > import java.util.Arrays;
>> > > import java.util.Collections;
>> > > import java.util.List;
>> > > import java.util.Map;
>> > >
>> > > import org.apache.isis.applib.AppManifest;
>> > > import org.apache.isis.applib.fixturescripts.FixtureScript;
>> > > import org.isisaddons.module.security.dom.DomainAppSecurityDomModule;
>> > > import
>> org.isisaddons.module.security.seed.DomainAppSecuritySeedModule;
>> > >
>> > > import au.com.scds.chats.dom.DomainAppDomainModule;
>> > >
>> > > import domainapp.fixture.DomainAppFixtureModule;
>> > >
>> > > /**
>> > >  * Bootstrap the application.
>> > >  */
>> > > public class DomainAppAppManifest implements AppManifest {
>> > >
>> > >     /**
>> > >      * Load all services and entities found in (the packages and
>> > > subpackages within) these modules
>> > >      */
>> > >     @Override
>> > >     public List<Class<?>> getModules() {
>> > >         return Arrays.asList(
>> > >                 DomainAppDomainModule.class,  // domain (entities and
>> > > repositories)
>> > >                 DomainAppFixtureModule.class, // fixtures
>> > >                 DomainAppAppModule.class,      // home page service
>> etc
>> > >                 DomainAppSecurityDomModule.class,  //security
>> > >                 DomainAppSecuritySeedModule.class, //seed the security
>> > > admin user
>> > >
>> > > org.isisaddons.wicket.gmap3.cpt.service.Gmap3ServiceModule.class
>> //Google
>> > > Gmap Geocoding Service
>> > >         );
>> > >     }
>> > >
>> > >     /**
>> > >      * No additional services.
>> > >      */
>> > >     @Override
>> > >     public List<Class<?>> getAdditionalServices() {
>> > >         //return Collections.emptyList();
>> > >         return Arrays.asList(
>> > >
>> > >
>> >
>> org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,
>> > >
>> > >
>> >
>> org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
>> > >         );
>> > >     }
>> > >
>> > >
>> > > I've added these two 'marker' classes to my app so the security domain
>> > > service classes will be discovered:
>> > >
>> > > org.isisaddons.module.security.dom.DomainAppSecurityDomModule.class
>> > > org.isisaddons.module.security.seed.DomainAppSecuritySeedModule.class
>> > >
>> > >
>> > > Steve C.
>> > >
>> >
>>
>
>

Re: security module questions

Posted by Stephen Cameron <st...@gmail.com>.
re " I have the home page as it appears in the security demo"

sorry, that is not so, its the right 'welcome' page.  So must be just
permissions.

On Sun, Sep 27, 2015 at 5:13 PM, Dan Haywood <da...@haywood-associates.co.uk>
wrote:

> Not sure.
>
> What I can tell you is that the home page is simply the result of the
> framework invoking a domain service annotated with @HomePage (or to be more
> precise, one that has a HomePageFacet). If one cannot be found in all of
> the services, then the index.html page (somewhere in the webapp module and
> as specified in your app's subclass of IsisWebApplication) will be
> rendered. If more than one such service can be found, then the app will
> fail to boot with a metamodel validation error.
>
> My guess is that the domain service you have with an @HomePage annotation
> isn't within the last of packages derived from the module package names. As
> a quick check, you could add the service class itself to the list returned
> from getModules() and see what happens.
>
> With respect to the marker classes you've added for security module, there
> is a class called simply SecurityModule that you could use.
>
> HTH
>
> Dan
> On 27 Sep 2015 07:42, "Stephen Cameron" <st...@gmail.com>
> wrote:
>
> > I see the following on the home page always, even when a new user logs in
> > other than isis-module-security-admin:
> >
> > Apache Isis <http://isis.apache.org>™ is a platform to let you rapidly
> > develop domain-driven apps in Java.
> >
> > This app has been generated using Apache Isis' SimpleApp
> > <http://isis.apache.org/intro/getting-started/simple%61pp-archetype.html
> >
> > archetype, to create a purposefully minimal application that nevertheless
> > includes fixture data, integration tests and BDD specs.
> >
> > The app itself consists of a single domain class, SimpleObject
> > <
> >
> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObject.java
> > >,
> > along with an equally simple (factory/repository) domain service,
> > SimpleObjects
> > <
> >
> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObjects.java
> > >.
> >
> >
> > For more details, see the Apache Isis website
> > <http://isis.apache.org/documentation.html>.
> >
> > On Sun, Sep 27, 2015 at 3:40 PM, Stephen Cameron <
> > steve.cameron.62@gmail.com
> > > wrote:
> >
> > > Hi,
> > >
> > > I am making use of the Apache Isis security module addon. I've
> configured
> > > it using the new App Manifest means, but have one issue, which is how
> is
> > > the home page being created now?
> > >
> > > I have the home page as it appears in the security demo, rather than
> the
> > > one that I created in my app.  Its not clear to me why Isis is picking
> up
> > > the alernative SecurityModuleApplication rather than my customised
> > > HomePageViewModel.
> > >
> > > To make it work with the AppManifest, I have the following:
> > >
> > > package domainapp.app;
> > >
> > > import java.util.Arrays;
> > > import java.util.Collections;
> > > import java.util.List;
> > > import java.util.Map;
> > >
> > > import org.apache.isis.applib.AppManifest;
> > > import org.apache.isis.applib.fixturescripts.FixtureScript;
> > > import org.isisaddons.module.security.dom.DomainAppSecurityDomModule;
> > > import org.isisaddons.module.security.seed.DomainAppSecuritySeedModule;
> > >
> > > import au.com.scds.chats.dom.DomainAppDomainModule;
> > >
> > > import domainapp.fixture.DomainAppFixtureModule;
> > >
> > > /**
> > >  * Bootstrap the application.
> > >  */
> > > public class DomainAppAppManifest implements AppManifest {
> > >
> > >     /**
> > >      * Load all services and entities found in (the packages and
> > > subpackages within) these modules
> > >      */
> > >     @Override
> > >     public List<Class<?>> getModules() {
> > >         return Arrays.asList(
> > >                 DomainAppDomainModule.class,  // domain (entities and
> > > repositories)
> > >                 DomainAppFixtureModule.class, // fixtures
> > >                 DomainAppAppModule.class,      // home page service etc
> > >                 DomainAppSecurityDomModule.class,  //security
> > >                 DomainAppSecuritySeedModule.class, //seed the security
> > > admin user
> > >
> > > org.isisaddons.wicket.gmap3.cpt.service.Gmap3ServiceModule.class
> //Google
> > > Gmap Geocoding Service
> > >         );
> > >     }
> > >
> > >     /**
> > >      * No additional services.
> > >      */
> > >     @Override
> > >     public List<Class<?>> getAdditionalServices() {
> > >         //return Collections.emptyList();
> > >         return Arrays.asList(
> > >
> > >
> >
> org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,
> > >
> > >
> >
> org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
> > >         );
> > >     }
> > >
> > >
> > > I've added these two 'marker' classes to my app so the security domain
> > > service classes will be discovered:
> > >
> > > org.isisaddons.module.security.dom.DomainAppSecurityDomModule.class
> > > org.isisaddons.module.security.seed.DomainAppSecuritySeedModule.class
> > >
> > >
> > > Steve C.
> > >
> >
>

Re: security module questions

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Not sure.

What I can tell you is that the home page is simply the result of the
framework invoking a domain service annotated with @HomePage (or to be more
precise, one that has a HomePageFacet). If one cannot be found in all of
the services, then the index.html page (somewhere in the webapp module and
as specified in your app's subclass of IsisWebApplication) will be
rendered. If more than one such service can be found, then the app will
fail to boot with a metamodel validation error.

My guess is that the domain service you have with an @HomePage annotation
isn't within the last of packages derived from the module package names. As
a quick check, you could add the service class itself to the list returned
from getModules() and see what happens.

With respect to the marker classes you've added for security module, there
is a class called simply SecurityModule that you could use.

HTH

Dan
On 27 Sep 2015 07:42, "Stephen Cameron" <st...@gmail.com> wrote:

> I see the following on the home page always, even when a new user logs in
> other than isis-module-security-admin:
>
> Apache Isis <http://isis.apache.org>™ is a platform to let you rapidly
> develop domain-driven apps in Java.
>
> This app has been generated using Apache Isis' SimpleApp
> <http://isis.apache.org/intro/getting-started/simple%61pp-archetype.html>
> archetype, to create a purposefully minimal application that nevertheless
> includes fixture data, integration tests and BDD specs.
>
> The app itself consists of a single domain class, SimpleObject
> <
> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObject.java
> >,
> along with an equally simple (factory/repository) domain service,
> SimpleObjects
> <
> https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObjects.java
> >.
>
>
> For more details, see the Apache Isis website
> <http://isis.apache.org/documentation.html>.
>
> On Sun, Sep 27, 2015 at 3:40 PM, Stephen Cameron <
> steve.cameron.62@gmail.com
> > wrote:
>
> > Hi,
> >
> > I am making use of the Apache Isis security module addon. I've configured
> > it using the new App Manifest means, but have one issue, which is how is
> > the home page being created now?
> >
> > I have the home page as it appears in the security demo, rather than the
> > one that I created in my app.  Its not clear to me why Isis is picking up
> > the alernative SecurityModuleApplication rather than my customised
> > HomePageViewModel.
> >
> > To make it work with the AppManifest, I have the following:
> >
> > package domainapp.app;
> >
> > import java.util.Arrays;
> > import java.util.Collections;
> > import java.util.List;
> > import java.util.Map;
> >
> > import org.apache.isis.applib.AppManifest;
> > import org.apache.isis.applib.fixturescripts.FixtureScript;
> > import org.isisaddons.module.security.dom.DomainAppSecurityDomModule;
> > import org.isisaddons.module.security.seed.DomainAppSecuritySeedModule;
> >
> > import au.com.scds.chats.dom.DomainAppDomainModule;
> >
> > import domainapp.fixture.DomainAppFixtureModule;
> >
> > /**
> >  * Bootstrap the application.
> >  */
> > public class DomainAppAppManifest implements AppManifest {
> >
> >     /**
> >      * Load all services and entities found in (the packages and
> > subpackages within) these modules
> >      */
> >     @Override
> >     public List<Class<?>> getModules() {
> >         return Arrays.asList(
> >                 DomainAppDomainModule.class,  // domain (entities and
> > repositories)
> >                 DomainAppFixtureModule.class, // fixtures
> >                 DomainAppAppModule.class,      // home page service etc
> >                 DomainAppSecurityDomModule.class,  //security
> >                 DomainAppSecuritySeedModule.class, //seed the security
> > admin user
> >
> > org.isisaddons.wicket.gmap3.cpt.service.Gmap3ServiceModule.class //Google
> > Gmap Geocoding Service
> >         );
> >     }
> >
> >     /**
> >      * No additional services.
> >      */
> >     @Override
> >     public List<Class<?>> getAdditionalServices() {
> >         //return Collections.emptyList();
> >         return Arrays.asList(
> >
> >
> org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,
> >
> >
> org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
> >         );
> >     }
> >
> >
> > I've added these two 'marker' classes to my app so the security domain
> > service classes will be discovered:
> >
> > org.isisaddons.module.security.dom.DomainAppSecurityDomModule.class
> > org.isisaddons.module.security.seed.DomainAppSecuritySeedModule.class
> >
> >
> > Steve C.
> >
>

Re: security module questions

Posted by Stephen Cameron <st...@gmail.com>.
I see the following on the home page always, even when a new user logs in
other than isis-module-security-admin:

Apache Isis <http://isis.apache.org>™ is a platform to let you rapidly
develop domain-driven apps in Java.

This app has been generated using Apache Isis' SimpleApp
<http://isis.apache.org/intro/getting-started/simple%61pp-archetype.html>
archetype, to create a purposefully minimal application that nevertheless
includes fixture data, integration tests and BDD specs.

The app itself consists of a single domain class, SimpleObject
<https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObject.java>,
along with an equally simple (factory/repository) domain service,
SimpleObjects
<https://github.com/apache/isis/blob/master/example/application/simple%61pp/dom/src/main/java/dom/simple/SimpleObjects.java>.


For more details, see the Apache Isis website
<http://isis.apache.org/documentation.html>.

On Sun, Sep 27, 2015 at 3:40 PM, Stephen Cameron <steve.cameron.62@gmail.com
> wrote:

> Hi,
>
> I am making use of the Apache Isis security module addon. I've configured
> it using the new App Manifest means, but have one issue, which is how is
> the home page being created now?
>
> I have the home page as it appears in the security demo, rather than the
> one that I created in my app.  Its not clear to me why Isis is picking up
> the alernative SecurityModuleApplication rather than my customised
> HomePageViewModel.
>
> To make it work with the AppManifest, I have the following:
>
> package domainapp.app;
>
> import java.util.Arrays;
> import java.util.Collections;
> import java.util.List;
> import java.util.Map;
>
> import org.apache.isis.applib.AppManifest;
> import org.apache.isis.applib.fixturescripts.FixtureScript;
> import org.isisaddons.module.security.dom.DomainAppSecurityDomModule;
> import org.isisaddons.module.security.seed.DomainAppSecuritySeedModule;
>
> import au.com.scds.chats.dom.DomainAppDomainModule;
>
> import domainapp.fixture.DomainAppFixtureModule;
>
> /**
>  * Bootstrap the application.
>  */
> public class DomainAppAppManifest implements AppManifest {
>
>     /**
>      * Load all services and entities found in (the packages and
> subpackages within) these modules
>      */
>     @Override
>     public List<Class<?>> getModules() {
>         return Arrays.asList(
>                 DomainAppDomainModule.class,  // domain (entities and
> repositories)
>                 DomainAppFixtureModule.class, // fixtures
>                 DomainAppAppModule.class,      // home page service etc
>                 DomainAppSecurityDomModule.class,  //security
>                 DomainAppSecuritySeedModule.class, //seed the security
> admin user
>
> org.isisaddons.wicket.gmap3.cpt.service.Gmap3ServiceModule.class //Google
> Gmap Geocoding Service
>         );
>     }
>
>     /**
>      * No additional services.
>      */
>     @Override
>     public List<Class<?>> getAdditionalServices() {
>         //return Collections.emptyList();
>         return Arrays.asList(
>
> org.isisaddons.module.security.dom.password.PasswordEncryptionServiceUsingJBcrypt.class,
>
> org.isisaddons.module.security.dom.permission.PermissionsEvaluationServiceAllowBeatsVeto.class
>         );
>     }
>
>
> I've added these two 'marker' classes to my app so the security domain
> service classes will be discovered:
>
> org.isisaddons.module.security.dom.DomainAppSecurityDomModule.class
> org.isisaddons.module.security.seed.DomainAppSecuritySeedModule.class
>
>
> Steve C.
>