And here's some notes from my wiki for a tapestry-security file based auth
and hibernate for entities.
I'm also in +10 timezone down in Sydney - so the replies will come later in
the day usually :)

Skeleton

   - Create quickstart tapestry archetype

[edit
<https://bondiwiki.mrvoip.com.au/index.php?title=Tapestry_Hibernate_Security&action=edit&section=2>
]Change dependencies

   - Add in these dependencies replacing tapestry-core

                <dependency>
                        <groupId>org.apache.tapestry</groupId>
                        <artifactId>tapestry-hibernate</artifactId>
                        <version>5.3.7</version>
                </dependency>
                <dependency>
                  <groupId>org.tynamo</groupId>
                  <artifactId>tapestry-security</artifactId>
                  <version>0.5.1</version>
                </dependency>
                <dependency>
                        <groupId>hsqldb</groupId>
                        <artifactId>hsqldb</artifactId>
                        <version>1.8.0.7</version>
                </dependency>
                <dependency>
                        <groupId>org.got5</groupId>
                        <artifactId>tapestry5-jquery</artifactId>
                        <version>3.3.7</version>
                </dependency>


...
    <repository>
        <id>devlab722-repo</id>
        <url>http://nexus.devlab722.net/nexus/content/repositories/releases
        </url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>

    <repository>
        <id>devlab722-snapshot-repo</id>
        <url>http://nexus.devlab722.net/nexus/content/repositories/snapshots
        </url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
...




   - Running in jetty at this stage will yield this error in the browser

HTTP ERROR 500

Problem accessing /TapestryHibernateSecurity/. Reason:

    Exception constructing service 'WebSecurityManager': Error
invoking constructor public
org.tynamo.security.services.TapestryRealmSecurityManager(org.tynamo.security.Authenticator,org.apache.shiro.mgt.SubjectFactory,org.apache.shiro.mgt.RememberMeManager,java.util.Collection):
Realms collection argument cannot be empty.

Caused by:

java.lang.RuntimeException: Exception constructing service
'WebSecurityManager': Error invoking constructor public
org.tynamo.security.services.TapestryRealmSecurityManager(org.tynamo.security.Authenticator,org.apache.shiro.mgt.SubjectFactory,org.apache.shiro.mgt.RememberMeManager,java.util.Collection):
Realms collection argument cannot be empty.
        at 
org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75)


Because Tapestry has an IoC container that does dependency injection, each
service tapetry uses needs to be configured within a module. The default
place for application specific services to be set up is in AppModule.
[edit
<https://bondiwiki.mrvoip.com.au/index.php?title=Tapestry_Hibernate_Security&action=edit&section=3>
]Add realm to security service

So we need to contribute some web security manager realm info by adding a
realm.

   - Add websecuritymanager realm into AppModule

...
import org.tynamo.shiro.extension.realm.text.ExtendedPropertiesRealm;
import org.apache.shiro.realm.Realm;
import org.apache.shiro.web.mgt.WebSecurityManager;
...

@Contribute(WebSecurityManager.class)
public static void addRealms(Configuration<Realm> configuration) {
        ExtendedPropertiesRealm realm = new
ExtendedPropertiesRealm("classpath:shiro-users.properties");
        configuration.add(realm);
}

[edit
<https://bondiwiki.mrvoip.com.au/index.php?title=Tapestry_Hibernate_Security&action=edit&section=4>
]Shiro users properties

And also add shiro-users.properties to the classpath (src/main/resources)

touch srm/main/resources/shiro-users.properties


   - Firing up application now yields hibernate errors.

HTTP ERROR 500

Problem accessing /TapestryHibernateSecurity/. Reason:

    java.lang.RuntimeException: Exception constructing service
'ValueEncoderSource': Error invoking service contribution method
org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration,
boolean, HibernateSessionSource, Session, TypeCoercer, PropertyAccess,
LoggerSource): Exception constructing service
'HibernateSessionSource': Error invoking constructor public
org.apache.tapestry5.internal.hibernate.HibernateSessionSourceImpl(org.slf4j.Logger,java.util.List):
/hibernate.cfg.xml not found

Caused by:

org.apache.shiro.subject.ExecutionException:
java.lang.RuntimeException: Exception constructing service
'ValueEncoderSource': Error invoking service contribution method
org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration,
boolean, HibernateSessionSource, Session, TypeCoercer, PropertyAccess,
LoggerSource): Exception constructing service
'HibernateSessionSource': Error invoking constructor public
org.apache.tapestry5.internal.hibernate.HibernateSessionSourceImpl(org.slf4j.Logger,java.util.List):
/hibernate.cfg.xml not found
        at 
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:382)


[edit
<https://bondiwiki.mrvoip.com.au/index.php?title=Tapestry_Hibernate_Security&action=edit&section=5>
]add in the hibernate configuration

   - Add hibernate configuration for derby db

src/main/resources/hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd";>
<hibernate-configuration>
    <session-factory>
        <property
name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property
name="hibernate.connection.url">jdbc:hsqldb:./target/work/t5hibernatesecurity;shutdown=true</property>
        <property
name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password"></property>
        <property name="hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
    </session-factory>
</hibernate-configuration>







On Tue, Aug 5, 2014 at 12:19 PM, Chris Mylonas <ch...@opencsta.org> wrote:

> Hi Tim,
>
> I had sample code in a repo I was making a variations project to split
> hairs on how to do the same thing using different ways.
>
> Unforch that repo was lost by a VPS provider although I have the latest
> got tree it is def not share-able ATM.
>
> Do a Google search for "github eloquentia Thiago tapestry" and you'll find
> thiago's excellent sample to get you going from a file based thing to
> database.
>
> Eloquentia may use nosql but you will be able to work it out - I did and
> I'm by far nowhere in the league of others on the list :)
>
> HTH
> Chris
> On 05/08/2014 11:43 am, "D Tim Cummings" <t...@triptera.com.au> wrote:
>
>> I am having a look at the tapestry-security guide at
>> http://tynamo.org/tapestry-security+guide and several of the links are
>> broken
>>
>> Hibernate-based entity realm (service)
>> <http://svn.codehaus.org/tynamo/trunk/tynamo-federatedaccounts/tynamo-federatedaccounts-core/src/test/java/org/tynamo/security/federatedaccounts/testapp/services/UserRealm.java>
>>  points
>> to
>> http://svn.codehaus.org/tynamo/trunk/tynamo-federatedaccounts/tynamo-federatedaccounts-core/src/test/java/org/tynamo/security/federatedaccounts/testapp/services/UserRealm.java
>> (404 Not found)
>>
>> User entity used by the realm sample referred to above
>> <http://svn.codehaus.org/tynamo/trunk/tynamo-federatedaccounts/tynamo-federatedaccounts-core/src/test/java/org/tynamo/security/federatedaccounts/testapp/entities/User.java>
>>  points
>> to
>> http://svn.codehaus.org/tynamo/trunk/tynamo-federatedaccounts/tynamo-federatedaccounts-core/src/test/java/org/tynamo/security/federatedaccounts/testapp/entities/User.java
>> (404 Not found)
>>
>> tapestry-exceptionpage <http://tynamo.org/tapestry-security+guide> points
>> to the tapestry-security guide page that we are reading.
>>
>> full-featured integration test web app
>> <http://svn.codehaus.org/tynamo/trunk/tapestry-security/src/test/java/org/tynamo/security/testapp/>
>>  should
>> probably point to github
>> https://github.com/tynamo/tapestry-security/tree/master/src/test/java/org/tynamo/security/testapp
>>
>> template
>> <http://svn.codehaus.org/tynamo/trunk/tapestry-security/src/test/resources/org/tynamo/security/testapp/pages/Index.tml>
>>  should
>> probably point to github
>> https://github.com/tynamo/tapestry-security/blob/master/src/test/resources/org/tynamo/security/testapp/pages/Index.tml
>>
>> class
>> <http://svn.codehaus.org/tynamo/trunk/tapestry-security/src/test/java/org/tynamo/security/testapp/pages/Index.java>
>>  should
>> probably point to github
>> https://github.com/tynamo/tapestry-security/blob/master/src/test/java/org/tynamo/security/testapp/pages/Index.java
>>
>> AlphaService
>> <http://svn.codehaus.org/tynamo/trunk/tapestry-security/src/test/java/org/tynamo/security/testapp/services/AlphaService.java>
>>  should
>> probably point to github
>> https://github.com/tynamo/tapestry-security/blob/master/src/test/java/org/tynamo/security/testapp/services/AlphaService.java
>>
>> http://svn.codehaus.org/tynamo/trunk/tynamo-example-federatedaccounts should
>> probably point to github
>> https://github.com/tynamo/tynamo-example-federatedaccounts
>>
>> AppModule
>> <http://svn.codehaus.org/tynamo/trunk/tynamo-example-federatedaccounts/src/main/java/org/tynamo/examples/federatedaccounts/services/AppModule.java>
>>  should
>> probably point to github
>> https://github.com/tynamo/tynamo-example-federatedaccounts/blob/master/src/main/java/org/tynamo/examples/federatedaccounts/services/AppModule.java
>>
>>
>>
>> I am really looking for sample code of an implementation of
>> tapestry-security with Cayenne (or Hibernate) using Tapestry 5.3.7,
>> tapestry-security 0.5.1. I don't need federated accounts at this stage.
>>
>>
>>
>> Regards
>>
>> Tim
>>
>

Reply via email to