Hi Dan, In AbstractHTTPDestination, we have code like
inMessage.put(SecurityContext.class, new SecurityContext() { public Principal getUserPrincipal() { return pp; } public boolean isUserInRole(String role) { return req.isUserInRole(role); } }); This can cause exception if we enable org.eclipse.jetty.plus.jaas.JAASLoginService in Karaf, something like have <Call name="addBean"> <Arg> <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> <Set name="name">karaf</Set> <Set name="loginModuleName">karaf</Set> <Set name="roleClassNames"> <Array type="java.lang.String"> <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal</Item> </Array> </Set> </New> </Arg> </Call> in $KARAF_HOME/etc/jetty.xml the exception could be Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.eclipse.jetty.plus.jaas.JAASRole not found by org.apache.cxf.cxf-rt-transports-http [178] at org.eclipse.jetty.plus.jaas.JAASLoginService.getGroups(JAASLoginService.java:327) at org.eclipse.jetty.plus.jaas.JAASLoginService.login(JAASLoginService.java:244) at org.eclipse.jetty.security.authentication.BasicAuthenticator.validateRequest(BasicAuthenticator.java:88) at org.eclipse.jetty.security.authentication.DeferredAuthentication.authenticate(DeferredAuthentication.java:108) at org.eclipse.jetty.server.Request.getUserPrincipal(Request.java:1251) at org.apache.cxf.transport.http.AbstractHTTPDestination.setupMessage(AbstractHTTPDestination.java:332)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:219)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:221)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:141)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)[95:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:197)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-SNAPSHOT] ... 32 more Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.plus.jaas.JAASRole not found by org.apache.cxf.cxf-rt-transports-http [178] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1499) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1882) at java.lang.ClassLoader.loadClass(ClassLoader.java:356)[:1.7.0_07] at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1814) at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:929) at org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLoader.java:176) at org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLoader.java:194) at java.lang.ClassLoader.loadClass(ClassLoader.java:356)[:1.7.0_07] at org.eclipse.jetty.plus.jaas.JAASLoginService.getGroups(JAASLoginService.java:315) ... 45 more and Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.karaf.jaas.boot.principal.RolePrincipal not found by org.apache.cxf.cxf-rt-transports-http [178] at org.eclipse.jetty.plus.jaas.JAASLoginService.getGroups(JAASLoginService.java:327) at org.eclipse.jetty.plus.jaas.JAASLoginService.login(JAASLoginService.java:244) at org.eclipse.jetty.security.authentication.BasicAuthenticator.validateRequest(BasicAuthenticator.java:88) at org.eclipse.jetty.security.authentication.DeferredAuthentication.authenticate(DeferredAuthentication.java:108) at org.eclipse.jetty.server.Request.getUserPrincipal(Request.java:1251) at org.apache.cxf.transport.http.AbstractHTTPDestination.setupMessage(AbstractHTTPDestination.java:332)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:219)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:221)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:141)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)[95:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2] at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:197)[178:org.apache.cxf.cxf-rt-transports-http:2.6.0.fuse-71-047] ... 32 more Caused by: java.lang.ClassNotFoundException: org.apache.karaf.jaas.boot.principal.RolePrincipal not found by org.apache.cxf.cxf-rt-transports-http [178] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1499) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1882) at java.lang.ClassLoader.loadClass(ClassLoader.java:356)[:1.7.0_07] at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1814) at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:929) at org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLoader.java:176) at org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLoader.java:194) at java.lang.ClassLoader.loadClass(ClassLoader.java:356)[:1.7.0_07] at org.eclipse.jetty.plus.jaas.JAASLoginService.getGroups(JAASLoginService.java:315) ... 45 more The org.eclipse.jetty.plus.jaas.JAASLoginService.getGroups(JAASLoginService.java:315) is Class load_class = Thread.currentThread().getContextClassLoader().loadClass(roleClassName); And in the cxf 2.5.x all-in-one bundle, we have imported org.eclipse.jetty.plus.jaas package. ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: @Freeman小屋 On 2013-2-20, at 下午8:00, Daniel Kulp wrote: > > Freeman, > > Can I ask why this is necessary? The HTTP module does not reference any of > these classes. Thus, it shouldn't be importing them. What are the > symptoms/stack traces? This sounds like more of a problem someplace else. > > I'm -1 on this commit until we can understand why it's needed. > > Dan > > > On Feb 19, 2013, at 11:58 PM, ff...@apache.org wrote: > >> Author: ffang >> Date: Wed Feb 20 04:58:42 2013 >> New Revision: 1448003 >> >> URL: http://svn.apache.org/r1448003 >> Log: >> [CXF-4840]add more optional Import-Package for cxf-rt-transports-http module >> >> Modified: >> cxf/trunk/rt/transports/http/pom.xml >> >> Modified: cxf/trunk/rt/transports/http/pom.xml >> URL: >> http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/pom.xml?rev=1448003&r1=1448002&r2=1448003&view=diff >> ============================================================================== >> --- cxf/trunk/rt/transports/http/pom.xml (original) >> +++ cxf/trunk/rt/transports/http/pom.xml Wed Feb 20 04:58:42 2013 >> @@ -36,7 +36,9 @@ >> >> <cxf.bundle.activator>org.apache.cxf.transport.http.osgi.HTTPTransportActivator</cxf.bundle.activator> >> <cxf.osgi.import> >> javax.servlet*;version="${cxf.osgi.javax.servlet.version}", >> - org.apache.aries*;version="${cxf.aries.version.range}" >> + org.apache.aries*;version="${cxf.aries.version.range}", >> + org.apache.karaf.jaas.boot.principal;resolution:=optional, >> + org.eclipse.jetty.plus.jaas;resolution:=optional >> </cxf.osgi.import> >> <cxf.osgi.export> >> '=META-INF.cxf.osgi', >> >> > > -- > Daniel Kulp > dk...@apache.org - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com >