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 >