Hi Freeman, I've refractored my code to follow the wsdl-first-osgi example for smx4.2 and I'm still getting the same error. Although, my stack trace now is a little different from what I had originally. For the life of me, I tried to recreate the same stack trace but it wouldn't work. I've include a client in there also so you don't have to use SOAPUI. http://old.nabble.com/file/p28860520/ws-sec-test.zip ws-sec-test.zip
I'm starting to think this is a bug or something because I've tried everything and nothing will work and it should be relatively simple. Much appreciated, Vinh Freeman Fang wrote: > > Well, several issues I can point now > > 1. what servicemix version you are using? > Your bc and se pom.xml import > org.apache.servicemix.cxf.transport.http_osgi, which indicate you're > using very old servicemix version, as now http_osgi transport code > move to cxf codebase, and the package should be > org.apache.cxf.transport.http_osgi. Moreover, you don't need this > package at all as you are use JBI endpoint which will use http > transport underlying. > I strongly recommend you use the latest released smx4.2. > > 2. your beans.xml for bc and se isn't correct. You are using OSGi > package for JBI endpoint, we have a cxf-wsdl-first-osgi-package > example shipped with kit which is exactly same as your scenario, you > need take a look at it, especially how the pom.xml(Import-Package, > Export-Package) and beans.xml looks like. Be careful for the <import > resource="">, I don't think it's > always necessary for your case. > > 3. You testcase is lack of the client side which send out soap > message, I don't want to assume it myself as I need ensure what I do > here is exactly same as what you've done. > > 4. Could you provide a clean testcase for me which just reproduce the > callbackhandler class can't found error? If the testcase isn't so > straightforward, I need a step by step instruction which tell me how > to reproduce the exact error. For the current testcase I can't simply > deploy it, after change several part I can deploy but get different > error like > javax.net.ssl.SSLException: Unrecognized SSL message, plaintext > connection? > at > com > .sun > .net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java: > 523) > at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355) > at > com > .sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java: > 789) > at > com > .sun > .net > .ssl > .internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java: > 1112) > at > com > .sun > .net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java: > 1139) > at > com > .sun > .net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java: > 1123) > at org.mortbay.jetty.security.SslSocketConnector > $SslConnection.run(SslSocketConnector.java:675) > at org.mortbay.thread.QueuedThreadPool > $PoolThread.run(QueuedThreadPool.java:582) > > I don't want assume what you do and change your testcase myself, I > need ensure we are doing same thing. > > The simpler testcase which exactly reproduce the problem you > described, the quicker you get help. > > > Could you refactor your testcase based on cxf-wsdl-first-osgi-package > against SMX4.2, if you follow my instruction but the problem still > exist. :-) > > > Freeman > On 2010-6-4, at 上午2:54, nbdy wrote: > >> >> Hi, I was trying to make a clean project for you to play with but I >> ran out >> of time. So here's our original project with the SE and BC. >> http://old.nabble.com/file/p28771556/useracctService.zip >> useracctService.zip >> >> I had to replace the CXF-BC in my servicemix 4 w/ >> http://repo2.maven.org/maven2/org/apache/servicemix/servicemix-cxf-bc/2010.01/servicemix-cxf-bc-2010.01.jar >> servicemix-cxf-bc-2010.01.jar >> w/ a hack by replace the cxf-bc in the lib dir. Couldn't figure out >> how to >> get servicemix to get a different version of a packaged bundle. >> >> >> Thanks, >> Vinh >> >> >> >> Freeman Fang wrote: >>> >>> Hi, >>> >>> Not exactly sure what happened now. Actually we have a cxf-ws- >>> security- >>> osgi example shipped with kit and use callback handler class, this >>> class can be found. >>> Could you append your project(the one I can build and modify, not >>> only >>> the binary bundle jar), as well as your client which send out soap >>> request? I'd like to play with it when I get chance. >>> >>> Freeman >>> On 2010-6-2, at 下午9:06, nbdy wrote: >>> >>>> >>>> Hi, yes I've had with the export package only, private-package only, >>>> and both >>>> export and private package. They all resulted the same error. >>>> >>>> Vinh >>>> >>>> >>>> >>>> Freeman Fang wrote: >>>>> >>>>> Hi, >>>>> >>>>> How about you remove >>>>> >>>>> <Private-Package> >>>>> com.mycompany.useraccount >>>>> </Private-Package> >>>>> >>>>> from your pom? >>>>> >>>>> Freeman >>>>> On 2010-6-2, at 上午5:08, nbdy wrote: >>>>> >>>>>> >>>>>> I'm trying to implement authentication with SSL as a ws-security >>>>>> policy on a >>>>>> service inside of SMX4. So far I've been able to implement SSL and >>>>>> the >>>>>> transport policy, but I've not been able to get the authentication >>>>>> part to >>>>>> work. I've tried to attack this at many different angles but I'm >>>>>> just >>>>>> missing something. I was wondering if you guys can help me. I >>>>>> don't >>>>>> know how >>>>>> it cannot find my callback class since I've exported package in >>>>>> the >>>>>> cxf.bundle config in the pom. >>>>>> >>>>>> Error response: >>>>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ >>>>>> envelope/"> >>>>>> <soap:Body> >>>>>> <soap:Fault> >>>>>> <faultcode>soap:Client</faultcode> >>>>>> <faultstring>com.mycompany.useraccount.ServerPasswordCallback; >>>>>> nested >>>>>> exception is: >>>>>> java.lang.ClassNotFoundException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback</faultstring> >>>>>> </soap:Fault> >>>>>> </soap:Body> >>>>>> </soap:Envelope> >>>>>> >>>>>> Client request: >>>>>> <soapenv:Envelope >>>>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ >>>>>> " >>>>>> xmlns:typ="http://www.mycompany.com/UserAccount/types"> >>>>>> <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> >>>>>> <wsse:Security soapenv:mustUnderstand="1" >>>>>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd >>>>>> "> >>>>>> <wsu:Timestamp wsu:Id="Timestamp-14" >>>>>> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd >>>>>> "> >>>>>> <wsu:Created>2010-06-01T19:55:10.984Z</wsu:Created> >>>>>> <wsu:Expires>2010-06-01T19:56:10.984Z</wsu:Expires> >>>>>> </wsu:Timestamp> >>>>>> <wsse:UsernameToken wsu:Id="UsernameToken-13" >>>>>> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd >>>>>> "> >>>>>> <wsse:Username>joe</wsse:Username> >>>>>> <wsse:Password >>>>>> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText >>>>>> ">joespassword</wsse:Password> >>>>>> <wsse:Nonce >>>>>> EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary >>>>>> ">o6HCEhy9dHH6zkBhdp/FLw==</wsse:Nonce> >>>>>> <wsu:Created>2010-06-01T19:55:03.718Z</wsu:Created> >>>>>> </wsse:UsernameToken> >>>>>> </wsse:Security> >>>>>> <wsa:Action>http://www.mycompany.com/UserAccount/UserAccountPortType/ApproveDenyAccountRequest >>>>>> </wsa:Action> >>>>>> </soapenv:Header> >>>>>> <soapenv:Body> >>>>>> <typ:ApproveDenyUserRequest> >>>>>> <typ:pendingId>13</typ:pendingId> >>>>>> <typ:approval>1</typ:approval> >>>>>> </typ:ApproveDenyUserRequest> >>>>>> </soapenv:Body> >>>>>> </soapenv:Envelope> >>>>>> >>>>>> Servicemix log: >>>>>> 15:55:16,812 | WARN | 7...@qtp-31267377-2 | WSS4JInInterceptor | >>>>>> ecurity.wss4j.WSS4JInInterceptor 255 | >>>>>> org.apache.ws.security.WSSecurityException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback; nested exception >>>>>> is: >>>>>> java.lang.ClassNotFoundException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:477) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java: >>>>>> 195) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java: >>>>>> 78) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .phase >>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: >>>>>> 243) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java: >>>>>> 109) >>>>>> at >>>>>> org.apache.servicemix.cxfbc.CxfBcConsumer >>>>>> $JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:678) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .http_jetty >>>>>> .JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java: >>>>>> 312) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .http_jetty >>>>>> .JettyHTTPDestination.doService(JettyHTTPDestination.java: >>>>>> 276) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java: >>>>>> 70) >>>>>> at >>>>>> org >>>>>> .mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>>>>> 765) >>>>>> at >>>>>> org >>>>>> .mortbay >>>>>> .jetty >>>>>> .handler >>>>>> .ContextHandlerCollection.handle(ContextHandlerCollection.java: >>>>>> 230) >>>>>> at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java: >>>>>> 49) >>>>>> at >>>>>> org >>>>>> .mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: >>>>>> 152) >>>>>> at org.mortbay.jetty.Server.handle(Server.java:326) >>>>>> at >>>>>> org >>>>>> .mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: >>>>>> 542) >>>>>> at >>>>>> org.mortbay.jetty.HttpConnection >>>>>> $RequestHandler.content(HttpConnection.java:938) >>>>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >>>>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java: >>>>>> 218) >>>>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java: >>>>>> 404) >>>>>> at >>>>>> org.mortbay.jetty.bio.SocketConnector >>>>>> $Connection.run(SocketConnector.java:228) >>>>>> at >>>>>> org.mortbay.jetty.security.SslSocketConnector >>>>>> $SslConnection.run(SslSocketConnector.java:680) >>>>>> at >>>>>> org.mortbay.thread.QueuedThreadPool >>>>>> $PoolThread.run(QueuedThreadPool.java:582) >>>>>> Caused by: java.lang.ClassNotFoundException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi >>>>>> .internal.loader.BundleLoader.findClassInternal(BundleLoader.java: >>>>>> 494) >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi.internal.loader.BundleLoader.findClass(BundleLoader.java: >>>>>> 410) >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi.internal.loader.BundleLoader.findClass(BundleLoader.java: >>>>>> 398) >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi >>>>>> .internal >>>>>> .baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java: >>>>>> 105) >>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:252) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .common >>>>>> .classloader.ClassLoaderUtils.loadClass2(ClassLoaderUtils.java: >>>>>> 236) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .common >>>>>> .classloader.ClassLoaderUtils.loadClass(ClassLoaderUtils.java: >>>>>> 222) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:475) >>>>>> ... 21 more >>>>>> 15:55:16,812 | WARN | 7...@qtp-31267377-2 | PhaseInterceptorChain | >>>>>> ache.cxf.common.logging.LogUtils 361 | Interceptor for >>>>>> {http://www.mycompany.com/UserAccount}UserAccountService has >>>>>> thrown >>>>>> exception, unwinding now >>>>>> org.apache.cxf.binding.soap.SoapFault: >>>>>> com.mycompany.useraccount.ServerPasswordCallback; nested exception >>>>>> is: >>>>>> java.lang.ClassNotFoundException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.createSoapFault(WSS4JInInterceptor.java: >>>>>> 583) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java: >>>>>> 256) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java: >>>>>> 78) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .phase >>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: >>>>>> 243) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java: >>>>>> 109) >>>>>> at >>>>>> org.apache.servicemix.cxfbc.CxfBcConsumer >>>>>> $JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:678) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .http_jetty >>>>>> .JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java: >>>>>> 312) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .http_jetty >>>>>> .JettyHTTPDestination.doService(JettyHTTPDestination.java: >>>>>> 276) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .transport >>>>>> .http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java: >>>>>> 70) >>>>>> at >>>>>> org >>>>>> .mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>>>>> 765) >>>>>> at >>>>>> org >>>>>> .mortbay >>>>>> .jetty >>>>>> .handler >>>>>> .ContextHandlerCollection.handle(ContextHandlerCollection.java: >>>>>> 230) >>>>>> at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java: >>>>>> 49) >>>>>> at >>>>>> org >>>>>> .mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: >>>>>> 152) >>>>>> at org.mortbay.jetty.Server.handle(Server.java:326) >>>>>> at >>>>>> org >>>>>> .mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: >>>>>> 542) >>>>>> at >>>>>> org.mortbay.jetty.HttpConnection >>>>>> $RequestHandler.content(HttpConnection.java:938) >>>>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) >>>>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java: >>>>>> 218) >>>>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java: >>>>>> 404) >>>>>> at >>>>>> org.mortbay.jetty.bio.SocketConnector >>>>>> $Connection.run(SocketConnector.java:228) >>>>>> at >>>>>> org.mortbay.jetty.security.SslSocketConnector >>>>>> $SslConnection.run(SslSocketConnector.java:680) >>>>>> at >>>>>> org.mortbay.thread.QueuedThreadPool >>>>>> $PoolThread.run(QueuedThreadPool.java:582) >>>>>> Caused by: org.apache.ws.security.WSSecurityException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback; nested exception >>>>>> is: >>>>>> java.lang.ClassNotFoundException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:477) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java: >>>>>> 195) >>>>>> ... 20 more >>>>>> Caused by: java.lang.ClassNotFoundException: >>>>>> com.mycompany.useraccount.ServerPasswordCallback >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi >>>>>> .internal.loader.BundleLoader.findClassInternal(BundleLoader.java: >>>>>> 494) >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi.internal.loader.BundleLoader.findClass(BundleLoader.java: >>>>>> 410) >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi.internal.loader.BundleLoader.findClass(BundleLoader.java: >>>>>> 398) >>>>>> at >>>>>> org >>>>>> .eclipse >>>>>> .osgi >>>>>> .internal >>>>>> .baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java: >>>>>> 105) >>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:252) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .common >>>>>> .classloader.ClassLoaderUtils.loadClass2(ClassLoaderUtils.java: >>>>>> 236) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .common >>>>>> .classloader.ClassLoaderUtils.loadClass(ClassLoaderUtils.java: >>>>>> 222) >>>>>> at >>>>>> org >>>>>> .apache >>>>>> .cxf >>>>>> .ws >>>>>> .security >>>>>> .wss4j.WSS4JInInterceptor.getCallback(WSS4JInInterceptor.java:475) >>>>>> ... 21 more >>>>>> >>>>>> xbeans.xml: >>>>>> >>>>>> <beans xmlns="http://www.springframework.org/schema/beans" >>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>> xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0" >>>>>> xmlns:nwec="http://www.mycompany.com/UserAccount" >>>>>> xmlns:util="http://www.springframework.org/schema/util" >>>>>> xmlns:httpj="http://cxf.apache.org/transports/http-jetty/ >>>>>> configuration" >>>>>> xmlns:http="http://cxf.apache.org/transports/http/configuration" >>>>>> xmlns:sec="http://cxf.apache.org/configuration/security" >>>>>> xsi:schemaLocation=" >>>>>> http://www.springframework.org/schema/beans >>>>>> http://www.springframework.org/schema/beans/spring-beans.xsd >>>>>> http://www.springframework.org/schema/util >>>>>> http://www.springframework.org/schema/util/spring-util.xsd >>>>>> http://servicemix.apache.org/cxfbc/1.0 >>>>>> http://repo2.maven.org/maven2/org/apache/servicemix/servicemix-cxf-bc/2010.01/servicemix-cxf-bc-2010.01.xsd >>>>>> http://cxf.apache.org/transports/http-jetty/configuration >>>>>> http://cxf.apache.org/schemas/configuration/http-jetty.xsd >>>>>> http://cxf.apache.org/transports/http/configuration >>>>>> http://cxf.apache.org/schemas/configuration/http-conf.xsd" > >>>>>> >>>>>> <import resource="classpath:META-INF/cxf/cxf.xml" /> >>>>>> <import resource="classpath:META-INF/cxf/cxf-extension- >>>>>> soap.xml" /> >>>>>> <import resource="classpath:META-INF/cxf/cxf-extension- >>>>>> http.xml" /> >>>>>> <import resource="classpath:META-INF/cxf/osgi/cxf-extension- >>>>>> osgi.xml" /> >>>>>> <import resource="classpath:META-INF/cxf/cxf-extension- >>>>>> policy.xml" /> >>>>>> <import resource="classpath:META-INF/cxf/cxf-extension-ws- >>>>>> security.xml" /> >>>>>> >>>>>> <cxfbc:consumer wsdl="classpath:wsdl/UserAccount.wsdl" >>>>>> targetService="nwec:UserAccountService" targetEndpoint="endpoint" >>>>>> useJBIWrapper="false" useSOAPEnvelope="false" >>>>>> properties="#properties" >>>>>> locationURI="https://localhost:9001/useraccount"> >>>>>> </cxfbc:consumer> >>>>>> >>>>>> <util:map id="properties"> >>>>>> <entry value="com.mycompany.useraccount.ServerPasswordCallback"> >>>>>> <key> >>>>>> <util:constant >>>>>> static- >>>>>> field >>>>>> ="org.apache.cxf.ws.security.SecurityConstants.CALLBACK_HANDLER" >>>>>> /> >>>>>> </key> >>>>>> </entry> >>>>>> </util:map> >>>>>> >>>>>> <httpj:engine-factory bus="cxf"> >>>>>> <httpj:engine port="9001"> >>>>>> <httpj:tlsServerParameters> >>>>>> <sec:keyManagers keyPassword="password"> >>>>>> <sec:keyStore type="JKS" password="password" resource="certs/ >>>>>> cherry.jks" /> >>>>>> </sec:keyManagers> >>>>>> <sec:cipherSuitesFilter> >>>>>> <sec:include>.*_WITH_3DES_.*</sec:include> >>>>>> <sec:include>.*_WITH_DES_.*</sec:include> >>>>>> <sec:exclude>.*_WITH_NULL_.*</sec:exclude> >>>>>> <sec:exclude>.*_DH_anon_.*</sec:exclude> >>>>>> </sec:cipherSuitesFilter> >>>>>> <sec:clientAuthentication want="false" >>>>>> required="false" /> >>>>>> </httpj:tlsServerParameters> >>>>>> </httpj:engine> >>>>>> </httpj:engine-factory> >>>>>> >>>>>> <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl" /> >>>>>> >>>>>> <bean >>>>>> class="org.apache.servicemix.common.osgi.EndpointExporter" /> >>>>>> >>>>>> </beans> >>>>>> >>>>>> wsdl: >>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" >>>>>> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >>>>>> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" >>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema" >>>>>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" >>>>>> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" >>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>> xmlns:tns="http://www.mycompany.com/UserAccount" >>>>>> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd >>>>>> " >>>>>> xmlns:fi="http://java.sun.com/xml/ns/wsit/2006/09/policy/fastinfoset/service >>>>>> " >>>>>> xmlns:tcp="http://java.sun.com/xml/ns/wsit/2006/09/policy/soaptcp/service >>>>>> " >>>>>> xmlns:sc="http://schemas.sun.com/2006/03/wss/server" >>>>>> xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy" >>>>>> xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust" >>>>>> xmlns:wsaw="http://www.w3.org/2005/08/addressing" >>>>>> xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" >>>>>> xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" >>>>>> xmlns:tc="http://schemas.sun.com/ws/2006/05/trust/server" >>>>>> xmlns:ns="http://www.mycompany.com/UserAccount/types" >>>>>> targetNamespace="http://www.mycompany.com/UserAccount"> >>>>>> <wsdl:types> >>>>>> ... >>>>>> </wsdl:types> >>>>>> ... >>>>>> <wsdl:portType name="UserAccountPortType"> >>>>>> ... >>>>>> </wsdl:portType> >>>>>> <wsdl:binding name="UserAccountBinding" >>>>>> type="tns:UserAccountPortType"> >>>>>> <soap:binding style="document" >>>>>> transport="http://schemas.xmlsoap.org/soap/http" /> >>>>>> <wsp:PolicyReference URI="#UserAccountBindingPolicy" /> >>>>>> ... >>>>>> </wsdl:binding> >>>>>> <wsdl:service name="UserAccountService"> >>>>>> <wsdl:port name="UserAccountPort" >>>>>> binding="tns:UserAccountBinding"> >>>>>> <soap:address location="https://localhost:9001/useraccount" /> >>>>>> </wsdl:port> >>>>>> </wsdl:service> >>>>>> >>>>>> <wsp:Policy wsu:Id="UserAccountBindingPolicy"> >>>>>> <wsp:ExactlyOne> >>>>>> <wsp:All> >>>>>> <wsaw:UsingAddressing >>>>>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl >>>>>> " >>>>>> wsp:Optional="true" /> >>>>>> <sp:TransportBinding> >>>>>> <wsp:Policy> >>>>>> <sp:TransportToken> >>>>>> <wsp:Policy> >>>>>> <sp:HttpsToken RequireClientCertificate="false"/> >>>>>> </wsp:Policy> >>>>>> </sp:TransportToken> >>>>>> <sp:Layout> >>>>>> <wsp:Policy> >>>>>> <sp:Lax/> >>>>>> </wsp:Policy> >>>>>> </sp:Layout> >>>>>> <sp:IncludeTimestamp/> >>>>>> <sp:AlgorithmSuite> >>>>>> <wsp:Policy> >>>>>> <sp:Basic128/> >>>>>> </wsp:Policy> >>>>>> </sp:AlgorithmSuite> >>>>>> </wsp:Policy> >>>>>> </sp:TransportBinding> >>>>>> <sp:SupportingTokens> >>>>>> <wsp:Policy> >>>>>> <sp:UsernameToken >>>>>> sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient >>>>>> "> >>>>>> <wsp:Policy> >>>>>> <sp:WssUsernameToken10 /> >>>>>> </wsp:Policy> >>>>>> </sp:UsernameToken> >>>>>> </wsp:Policy> >>>>>> </sp:SupportingTokens> >>>>>> <sp:Wss11 /> >>>>>> </wsp:All> >>>>>> </wsp:ExactlyOne> >>>>>> </wsp:Policy> >>>>>> </wsdl:definitions> >>>>>> >>>>>> pom: >>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>> <project xmlns="http://maven.apache.org/POM/4.0.0" >>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >>>>>> http://maven.apache.org/maven-v4_0_0.xsd"> >>>>>> >>>>>> <!-- >>>>>> >>>>>> Licensed to the Apache Software Foundation (ASF) under one or more >>>>>> contributor license agreements. See the NOTICE file distributed >>>>>> with >>>>>> this work for additional information regarding copyright >>>>>> ownership. >>>>>> The ASF licenses this file to You under the Apache License, >>>>>> Version >>>>>> 2.0 (the "License"); you may not use this file except in >>>>>> compliance >>>>>> with the License. You may obtain a copy of the License at >>>>>> >>>>>> http://www.apache.org/licenses/LICENSE-2.0 Unless required by >>>>>> applicable law or agreed to in writing, software distributed under >>>>>> the >>>>>> License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR >>>>>> CONDITIONS OF ANY KIND, either express or implied. See the License >>>>>> for >>>>>> the specific language governing permissions and limitations under >>>>>> the >>>>>> License. >>>>>> --> >>>>>> >>>>>> <modelVersion>4.0.0</modelVersion> >>>>>> >>>>>> <groupId>com.mycompany</groupId> >>>>>> <artifactId>useraccount-bc</artifactId> >>>>>> <packaging>bundle</packaging> >>>>>> <name>User Account BC</name> >>>>>> <version>0.0.1-SNAPSHOT</version> >>>>>> <url>http://www.mycompany.com</url> >>>>>> >>>>>> <repositories> >>>>>> <repository> >>>>>> <id>open.iona.m2</id> >>>>>> <name>IONA Open Source Community Release Repository</name> >>>>>> <url>http://repo.open.iona.com/maven2</url> >>>>>> <snapshots> >>>>>> <enabled>false</enabled> >>>>>> </snapshots> >>>>>> <releases> >>>>>> <enabled>true</enabled> >>>>>> </releases> >>>>>> </repository> >>>>>> <repository> >>>>>> <id>open.iona.m2-snapshot</id> >>>>>> <name>IONA Open Source Community Snapshot Repository</name> >>>>>> <url>http://repo.open.iona.com/maven2-snapshot</url> >>>>>> <snapshots> >>>>>> <enabled>true</enabled> >>>>>> </snapshots> >>>>>> <releases> >>>>>> <enabled>false</enabled> >>>>>> </releases> >>>>>> </repository> >>>>>> </repositories> >>>>>> <pluginRepositories> >>>>>> <pluginRepository> >>>>>> <id>open.iona.m2</id> >>>>>> <name>IONA Open Source Community Release Repository</name> >>>>>> <url>http://repo.open.iona.com/maven2</url> >>>>>> <snapshots> >>>>>> <enabled>false</enabled> >>>>>> </snapshots> >>>>>> <releases> >>>>>> <enabled>true</enabled> >>>>>> </releases> >>>>>> </pluginRepository> >>>>>> <pluginRepository> >>>>>> <id>open.iona.m2-snapshot</id> >>>>>> <name>IONA Open Source Community Snapshot Repository</name> >>>>>> <url>http://repo.open.iona.com/maven2-snapshot</url> >>>>>> <snapshots> >>>>>> <enabled>true</enabled> >>>>>> </snapshots> >>>>>> <releases> >>>>>> <enabled>false</enabled> >>>>>> </releases> >>>>>> </pluginRepository> >>>>>> </pluginRepositories> >>>>>> >>>>>> <dependencies> >>>>>> <dependency> >>>>>> <groupId>org.apache.geronimo.specs</groupId> >>>>>> <artifactId>geronimo-ws-metadata_2.0_spec</artifactId> >>>>>> <version>1.1.2</version> >>>>>> </dependency> >>>>>> <dependency> >>>>>> <groupId>javax.xml.bind</groupId> >>>>>> <artifactId>jaxb-api</artifactId> >>>>>> <version>2.1</version> >>>>>> </dependency> >>>>>> <dependency> >>>>>> <groupId>javax.xml.ws</groupId> >>>>>> <artifactId>jaxws-api</artifactId> >>>>>> <version>2.1</version> >>>>>> </dependency> >>>>>> <dependency> >>>>>> <groupId>org.apache.cxf</groupId> >>>>>> <artifactId>cxf-rt-ws-security</artifactId> >>>>>> <version>${cxf.version}</version> >>>>>> </dependency> >>>>>> <dependency> >>>>>> <groupId>org.apache.cxf</groupId> >>>>>> <artifactId>cxf-rt-ws-policy</artifactId> >>>>>> <version>${cxf.version}</version> >>>>>> </dependency> >>>>>> </dependencies> >>>>>> >>>>>> <build> >>>>>> <defaultGoal>install</defaultGoal> >>>>>> <plugins> >>>>>> <plugin> >>>>>> <groupId>org.apache.maven.plugins</groupId> >>>>>> <artifactId>maven-compiler-plugin</artifactId> >>>>>> <configuration> >>>>>> <source>1.5</source> >>>>>> <target>1.5</target> >>>>>> </configuration> >>>>>> </plugin> >>>>>> <plugin> >>>>>> <groupId>org.apache.felix</groupId> >>>>>> <artifactId>maven-bundle-plugin</artifactId> >>>>>> <extensions>true</extensions> >>>>>> <configuration> >>>>>> <instructions> >>>>>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> >>>>>> <Import-Package> >>>>>> *, >>>>>> javax.jws, >>>>>> javax.wsdl, >>>>>> javax.xml.bind, >>>>>> javax.xml.bind.annotation, >>>>>> javax.xml.namespace, >>>>>> javax.xml.ws, >>>>>> META-INF.cxf, >>>>>> META-INF.cxf.osgi, >>>>>> org.apache.cxf.bus, >>>>>> org.apache.cxf.bus.spring, >>>>>> org.apache.cxf.bus.resource, >>>>>> org.apache.cxf.configuration.spring, >>>>>> org.apache.cxf.resource, >>>>>> org.apache.cxf.jaxws, >>>>>> org.apache.cxf.ws.security.wss4j, >>>>>> org.apache.servicemix.common.osgi, >>>>>> org.apache.servicemix.cxf.transport.http_osgi, >>>>>> org.apache.servicemix.cxfbc, >>>>>> org.springframework.beans.factory.config, >>>>>> javax.security.auth.callback, >>>>>> org.apache.ws.security >>>>>> </Import-Package> >>>>>> <Export-Package> >>>>>> com.mycompany.useraccount >>>>>> </Export-Package> >>>>>> <Private-Package> >>>>>> com.mycompany.useraccount >>>>>> </Private-Package> >>>>>> <!-- Update Private Package tag with appropriate package name --> >>>>>> <Require-Bundle>org.apache.cxf.bundle</Require-Bundle> >>>>>> </instructions> >>>>>> </configuration> >>>>>> </plugin> >>>>>> </plugins> >>>>>> </build> >>>>>> <properties> >>>>>> <cxf.version>2.2.6</cxf.version> >>>>>> </properties> >>>>>> >>>>>> </project> >>>>>> -- >>>>>> View this message in context: >>>>>> http://old.nabble.com/cxf-bc-ws-security-callback-classnotfoundexception-tp28747501p28747501.html >>>>>> Sent from the ServiceMix - User mailing list archive at >>>>>> Nabble.com. >>>>>> >>>>> >>>>> >>>>> -- >>>>> Freeman Fang >>>>> ------------------------ >>>>> Open Source SOA: http://fusesource.com >>>>> >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/cxf-bc-ws-security-callback-classnotfoundexception-tp28747501p28754241.html >>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>> >>> >>> >>> -- >>> Freeman Fang >>> ------------------------ >>> Open Source SOA: http://fusesource.com >>> >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/cxf-bc-ws-security-callback-classnotfoundexception-tp28747501p28771556.html >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> > > > -- > Freeman Fang > ------------------------ > Open Source SOA: http://fusesource.com > > > http://old.nabble.com/file/p28860520/ws-sec-test.zip ws-sec-test.zip -- View this message in context: http://old.nabble.com/cxf-bc-ws-security-callback-classnotfoundexception-tp28747501p28860520.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
