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/>