The embedded webapp is used for integration testing with
TapestrySecurityIntegrationTest. The easiest way to see the testapp is to
put a breakpoint in one of the tests, run the test and navigate to
localhost:8180. You could technically run the test app via run-jetty-run
but it's not a good example security configuration. I leave creating a
running configuration as a task for you but I bet in your logs, you have a
line similar to this: "Excluded
entry=.../personal/git-tynamo/tapestry-security/target/test-classes".
Perhaps https://github.com/tynamo/tynamo-example-federatedaccounts is a
better sample for usage of tapestry-security.

Kalle


On Sat, Mar 22, 2014 at 8:52 AM, James Cen <cenja...@gmail.com> wrote:

> 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:
> .....................
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>

Reply via email to