Hi All,
    I am still relatively new to Tapestry but I have built simple things
for proof-of-concept using Tapestry (the latest 5.4-beta-3).  I am now
looking at incorporating security requirements by leveraging the
Tapestry-Security project (latest version 0.6.1-SNAPSHOT).  I have it set
up in Eclipse.  When I run the built-in TestApp on Jetty, it starts without
"obvious" problems.  But when I hit the URL
http://localhost:8080/tapestry-security/index, it splats with the the
following.

It appears there is no defined realm - but looking at the AppModule
(attached), there is one defined realm using the default realm defined by
shiro-users.properties (attached).

Going back to the startup console messages, I found this particular line
warning that the AppModule is not found.

Does explain the problem I am seeing?

What needs to be done differently for me to get this TestApp to work?

Thanks,

James

*****    Console startup messages    *****
..............
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.modules.DashboardModule
[WARN] tapestry5.TapestryFilter Application Module class
org.tynamo.security.testapp.services.AppModule not found <----------------
Problem(?)
[DEBUG] SecurityModule.ClassInterceptorsCache Creating proxy for service
ClassInterceptorsCache
[INFO] TapestryModule.ComponentClassResolver Available pages (8):
..............

 *****    Error messages when hitting
http://localhost:8080/tapestry-security/index    *****
..............
HTTP ERROR 500

Problem accessing /tapestry-security/index. Reason:

    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:

org.apache.tapestry5.ioc.internal.OperationException: 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.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:180)
        at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
        at 
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:89)
        at 
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1112)
        at 
org.apache.tapestry5.ioc.internal.util.ConstructionPlan.createObject(ConstructionPlan.java:60)
        at 
org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
        at 
org.apache.tapestry5.ioc.internal.ReloadableServiceImplementationObjectCreator.createInstance(ReloadableServiceImplementationObjectCreator.java:53)
        at 
org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator$1.invoke(AbstractReloadableObjectCreator.java:133)
        at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:80)
        at 
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:89)
        at 
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1112)
        at 
org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createInstance(AbstractReloadableObjectCreator.java:127)
        at 
org.apache.tapestry5.ioc.internal.AbstractReloadableObjectCreator.createObject(AbstractReloadableObjectCreator.java:119)
        at $WebSecurityManager_23b306c59f3.delegate(Unknown Source)
        at $WebSecurityManager_23b306c59f3.createSubject(Unknown Source)
        at $WebSecurityManager_23b306c59ef.createSubject(Unknown Source)
        at 
org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
        at 
org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
        at 
org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:51)
        at $HttpServletRequestFilter_23b306c59ee.service(Unknown Source)
        at $HttpServletRequestFilter_23b306c59e7.service(Unknown Source)
        at $HttpServletRequestHandler_23b306c59ea.service(Unknown Source)
        at 
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)
        at $HttpServletRequestHandler_23b306c59ea.service(Unknown Source)
        at 
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at $HttpServletRequestFilter_23b306c59e4.service(Unknown Source)
        at $HttpServletRequestHandler_23b306c59ea.service(Unknown Source)
        at 
org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:797)
        at $HttpServletRequestHandler_23b306c59ea.service(Unknown Source)
        at $HttpServletRequestHandler_23b306c59e3.service(Unknown Source)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:484)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
        at org.eclipse.jetty.server.Server.handle(Server.java:351)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
        at 
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890)
        at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
        at 
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.RuntimeException: 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.util.ConstructorInvoker.invoke(ConstructorInvoker.java:58)
        at 
org.apache.tapestry5.ioc.internal.util.LoggingInvokableWrapper.invoke(LoggingInvokableWrapper.java:42)
        at 
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:80)
        ... 52 more
Caused by: java.lang.IllegalArgumentException: Realms collection
argument cannot be empty.
        at 
org.apache.shiro.mgt.RealmSecurityManager.setRealms(RealmSecurityManager.java:78)
        at 
org.tynamo.security.services.TapestryRealmSecurityManager.<init>(TapestryRealmSecurityManager.java:31)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at 
org.apache.tapestry5.ioc.internal.util.ConstructorInvoker.invoke(ConstructorInvoker.java:49)
        ... 54 more

Caused by:
.....................
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
		PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
		"http://java.sun.com/dtd/web-app_2_3.dtd";>
<web-app>
	<display-name>tapestry-security-sample Tapestry 5 Application</display-name>
	<context-param>
		<param-name>tapestry.app-package</param-name>
		<param-value>org.tynamo.security.testapp</param-value>
	</context-param>

	<filter>
		<filter-name>app</filter-name>
		<filter-class>org.apache.tapestry5.TapestryFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>app</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>
      
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to