Do you have an idea what the issue might be? Thanks Oli
________________________________ From: Oliver Wulff [[email protected]] Sent: 01 September 2013 23:07 To: [email protected] Subject: RE: Configure authenticator for jetty in karaf Hi Achim I had some time to look into this issue again. I've deployed my WAR which has got the following web.xml definition (it works fine within a jetty container): ... <login-config> <auth-method>WSFED</auth-method> <realm-name>WSFED</realm-name> </login-config> and the configuration of jetty.xml: ... <Get name="handler"> <Call name="addHandler"> <Arg> <New class="org.eclipse.jetty.servlet.ServletContextHandler"> <Set name="contextPath">/fedizhelloworld</Set> <Call name="addServlet"> <Arg>org.eclipse.jetty.servlet.DefaultServlet</Arg> <Arg>/</Arg> </Call> <Set name="loginService"> <New class="org.apache.cxf.fediz.jetty.FederationLoginService"> <Set name="name">WSFED</Set> </New> </Set> <Set name="authenticator"> <New class="org.apache.cxf.fediz.jetty.FederationAuthenticator"> <Set name="configFile"><SystemProperty name="jetty.home" default="."/>/etc/fediz_config.xml</Set> </New> </Set> </New> </Arg> </Call> </Get> The bundles for fediz-core and fediz-jetty are deployed as well: [ 260] [Active ] [ ] [ ] [ 80] Apache Fediz Plugin Core (1.1.0.SNAPSHOT) [ 261] [Active ] [ ] [ ] [ 80] Apache Fediz Plugin Jetty (1.1.0.SNAPSHOT) But when I deploy the WAR into the deploy folder, I get the following exception: 22:54:42,796 | WARN | Executor: 3 | util.component.AbstractLifeCycle 204 | 58 - org.eclipse.jetty.util - 7.6.8.v20121106 | FAILED org.eclipse.jetty.security.ConstraintSecurityHandler@3db60ec4: java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@7f664b8a in org.eclipse.jetty.security.ConstraintSecurityHandler@3db60ec4 java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@7f664b8a in org.eclipse.jetty.security.ConstraintSecurityHandler@3db60ec4 at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:44)[65:org.eclipse.jetty.security:7.6.8.v20121106] at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:376)[65:org.eclipse.jetty.security:7.6.8.v20121106] at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart(ConstraintSecurityHandler.java:233)[65:org.eclipse.jetty.security:7.6.8.v20121106] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)[58:org.eclipse.jetty.util:7.6.8.v20121106] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:115)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.eclipse.jetty.server.session.SessionHandler.doStart(SessionHandler.java:120)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)[58:org.eclipse.jetty.util:7.6.8.v20121106] at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:115)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:729)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:238)[66:org.eclipse.jetty.servlet:7.6.8.v20121106] at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:683)[64:org.eclipse.jetty.server:7.6.8.v20121106] at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doStart(HttpServiceContext.java:100)[76:org.ops4j.pax.web.pax-web-jetty:1.1.12] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)[58:org.eclipse.jetty.util:7.6.8.v20121106] at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl$1.start(JettyServerImpl.java:165)[76:org.ops4j.pax.web.pax-web-jetty:1.1.12] at org.ops4j.pax.web.service.internal.HttpServiceStarted.end(HttpServiceStarted.java:758)[75:org.ops4j.pax.web.pax-web-runtime:1.1.12] at org.ops4j.pax.web.service.internal.HttpServiceProxy.end(HttpServiceProxy.java:281)[75:org.ops4j.pax.web.pax-web-runtime:1.1.12] at org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.end(RegisterWebAppVisitorWC.java:348)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:629)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.register(WebAppPublisher.java:170)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:155)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.WebAppPublisher$HttpServiceListener.serviceChanged(WebAppPublisher.java:119)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.tracker.ReplaceableService.setService(ReplaceableService.java:114)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.tracker.ReplaceableService.access$100(ReplaceableService.java:28)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.tracker.ReplaceableService$CollectionListener.serviceAdded(ReplaceableService.java:183)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.tracker.ServiceCollection$Tracker.addingService(ServiceCollection.java:181)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:932)[karaf.jar:2.3.1] at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)[karaf.jar:2.3.1] at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)[karaf.jar:2.3.1] at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)[karaf.jar:2.3.1] at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:317)[karaf.jar:2.3.1] at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261)[karaf.jar:2.3.1] at org.ops4j.pax.swissbox.tracker.ServiceCollection.onStart(ServiceCollection.java:139)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.tracker.ReplaceableService.onStart(ReplaceableService.java:146)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle$Stopped.start(AbstractLifecycle.java:121)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.lifecycle.AbstractLifecycle.start(AbstractLifecycle.java:49)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:81)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.WebXmlObserver.deploy(WebXmlObserver.java:204)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.web.extender.war.internal.WebXmlObserver.addingEntries(WebXmlObserver.java:162)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] at org.ops4j.pax.swissbox.extender.BundleWatcher$3.run(BundleWatcher.java:224)[218:org.ops4j.pax.web.pax-web-extender-war:1.1.12] ... 22:54:42,802 | DEBUG | tenerExecutor: 2 | ? ? | 75 - org.ops4j.pax.web.pax-web-runtime - 1.1.12 | org/osgi/service/web/UNDEPLOYED 22:54:42,803 | ERROR | Executor: 3 | nder.war.internal.WebXmlObserver 171 | 218 - org.ops4j.pax.web.pax-web-extender-war - 1.1.12 | Could not parse web.xml java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.BasicAuthenticator@7f664b8a in org.eclipse.jetty.security.ConstraintSecurityHandler@3db60ec4 at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:44)[65:org.eclipse.jetty.security:7.6.8.v20121106] at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:376)[65:org.eclipse.jetty.security:7.6.8.v20121106] I'd appreciate a hint. Thanks Oli ------ Oliver Wulff Blog: http://owulff.blogspot.com<http://owulff.blogspot.com/> Solution Architect http://coders.talend.com <http://coders.talend.com>Talend Application Integration Division http://www.talend.com ________________________________ From: Achim Nierbeck [[email protected]] Sent: 27 January 2013 21:21 To: [email protected] Subject: Re: Configure authenticator for jetty in karaf Hi Oliver, I'm not sure I follow. The servlet context / Web-ApplicationContext configured in the Manifest is not connected to the jetty.xml. Those are different things. With the jetty.xml you are able to do a finer grained configuration compared to the configuration available through the config-admin service. So for example if you need to add another ServletContext Handler you need to "get" the list of Handlers from the jetty server first, the sample of my blog post is just about adding a DefaultServlet publishing static content. regards, Achim 2013/1/27 Oliver Wulff <[email protected]<mailto:[email protected]>> Hi Achim What about the reference to the resource: <Set name="resourceBase">/path/to/your/share</Set> Is this really required in karaf? I've configured the servlet context in the manifest file thus the link between karaf jetty.xml and the war bundle could be created. Thanks Oli ________________________________ From: Achim Nierbeck [[email protected]<mailto:[email protected]>] Sent: 26 January 2013 18:32 To: [email protected]<mailto:[email protected]> Subject: Re: Configure authenticator for jetty in karaf Hi, I already wrote a little blog about it. You can find it at [1] Regards, Achim [1] - http://notizblog.nierbeck.de/2011/05/adding-additional-servletcontext-in-pax-web/ sent from mobile device Am 26.01.2013 03:31 schrieb "Jean-Baptiste Onofré" <[email protected]<mailto:[email protected]>>: Hi Oli, In fact, in etc/org.ops4j.pax.web.cfg, you can reference a etc/jetty.xml. In this jetty.xml, you can define your different connectors, and in your webapp (WAB) you can define which connector you want to use. I gonna blog about that (it's on my TODO ;)). Regards JB On 01/25/2013 10:28 PM, Oliver Wulff wrote: Hi JB I could configure something like this in jetty.xml I assume: <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="contextPath">/fedizhelloworld</Set> <Get name="securityHandler"> <Set name="loginService"> <New class="org.apache.cxf.fediz.jetty.FederationLoginService"> <Set name="name">WSFED</Set> </New> </Set> <Set name="authenticator"> <New class="org.apache.cxf.fediz.jetty.FederationAuthenticator"> <Set name="configFile"><SystemProperty name="jetty.home" default="."/>/etc/fediz_config.xml</Set> </New> </Set> <Set name="checkWelcomeFiles">true</Set> </Get> </Configure> But isn't it possible to configure the context related configs similar to the native jetty distribution (<jetty-home>/contexts) without having to update the core jetty.xml configuration? Thanks Oli ------ Oliver Wulff Blog: http://owulff.blogspot.com Solution Architect http://coders.talend.com Talend Application Integration Division http://www.talend.com ________________________________________ From: Jean-Baptiste Onofré [[email protected]<mailto:[email protected]>] Sent: 26 November 2012 20:52 To: [email protected]<mailto:[email protected]> Subject: Re: Configure authenticator for jetty in karaf Hi Oli, when installing the http feature, you have access to etc/jetty.xml where you can create your custom configuration. Regards JB On 11/26/2012 08:48 PM, Oliver Wulff wrote: Hi there I've built a custom authenticator for jetty thus web applications can also support WS-Federation SSO in Karaf for authentication. The snapshot version of the jetty module works but I'm wondering where I can configure the jetty authenticator, loginservice etc in Karaf. Thanks Oli ------ Oliver Wulff Blog: http://owulff.blogspot.com <http://owulff.blogspot.com/> Solution Architect http://coders.talend.com <http://coders.talend.com>Talend Application Integration Division http://www.talend.com -- Jean-Baptiste Onofré [email protected]<mailto:[email protected]> http://blog.nanthrax.net Talend - http://www.talend.com -- Jean-Baptiste Onofré [email protected]<mailto:[email protected]> http://blog.nanthrax.net Talend - http://www.talend.com -- Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> Commiter & Project Lead blog <http://notizblog.nierbeck.de/>
