Neither CXF 2.3 nor 2.4 are supported any more. Could you try instead with one of the latest 2.6 or 2.7 releases?
https://cxf.apache.org/download.html Colm. On Tue, May 28, 2013 at 4:29 PM, pep25abril <[email protected]> wrote: > Hi everyone, > > I'm developing a WS with CXF v2.3 and WS-Security with Username & Password > policy, that I've checked that works properly with CXF v2.4 but not in > v2.3. > Of course I've seen all docs placed on Apache CXF website in relation to > this topic, and the most interesting information I find is found on the > website > > http://coheigea.blogspot.com.es/2011/02/wspasswordcallback-changes-in-wss4j-16.html > , explaining the changes applied in wss4j v1.5 to v1.6, that is the same as > the library changed in CXF v2.3 and v2.4. I'm not sure if because of these > I > should change my configuration file in some way, depending on the version > used... > > Specifically, I have the following files on my project: > > beans.xml: > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:cxf="http://cxf.apache.org/core" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:sec="http://cxf.apache.org/configuration/security" > xmlns:http="http://cxf.apache.org/transports/http/configuration" > xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration" > xmlns:jaxws="http://cxf.apache.org/jaxws" > xsi:schemaLocation=" > http://cxf.apache.org/core > http://cxf.apache.org/schemas/core.xsd > http://cxf.apache.org/configuration/security > http://cxf.apache.org/schemas/configuration/security.xsd > http://cxf.apache.org/jaxws > http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/transports/http/configuration > http://cxf.apache.org/schemas/configuration/http-conf.xsd > http://cxf.apache.org/transports/http-jetty/configuration > http://cxf.apache.org/schemas/configuration/http-jetty.xsd > http://www.springframework.org/schema/beans > > http://www.springframework.org/schema/beans/spring-beans-2.0.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-servlet.xml" /> > > <cxf:bus> > <cxf:features> > <cxf:logging/> > </cxf:features> > </cxf:bus> > > <jaxws:endpoint id="server" > endpointName="s:IfuncionessformswsPort" > serviceName="s:Ifuncionessformsws" > > > implementor="es.servef.comuns.webservices.funcionessforms.IfuncionessformswsPortTypeImpl" > address="/IfuncionessformswsPort" > depends-on="ClientAuthHttpsSettings" > wsdlLocation="Ifuncionessformsws.wsdl" > xmlns:s=" > http://funcionessforms.webservices.comuns.servef.es/"> > <jaxws:properties> > <entry key="ws-security.callback-handler" > > value="es.servef.comuns.webservices.funcionessforms.ServerPasswordCallback"/> > </jaxws:properties> > </jaxws:endpoint> > > <httpj:engine-factory id="ClientAuthHttpsSettings" bus="cxf"> > <httpj:engine port="8443"> > <httpj:tlsServerParameters> > <sec:clientAuthentication want="true" > required="true" /> > </httpj:tlsServerParameters> > </httpj:engine> > </httpj:engine-factory> > > </beans> > > --- > > WSDL settings (only service and policy): > > ... > <wsdl:service name="Ifuncionessformsws"> > <wsdl:port binding="tns:IfuncionessformswsSoapBinding" > name="IfuncionessformswsPort"> > <soap:address > location=" > https://localhost:8443/testWsCxfMavenFuncionsSformsPolitica/services/IfuncionessformswsPort > "/> > <wsp:PolicyReference URI="#listassformswspolicy"/> > </wsdl:port> > </wsdl:service> > <wsp:Policy wsu:Id="listassformswspolicy"> > <wsp:ExactlyOne> > <wsp:All> > <sp:SupportingTokens> > <wsp:Policy> > <sp:UsernameToken > sp:IncludeToken=" > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient > "> > <wsp:Policy> > > <sp:WssUsernameToken11/> > </wsp:Policy> > </sp:UsernameToken> > </wsp:Policy> > </sp:SupportingTokens> > </wsp:All> > </wsp:ExactlyOne> > </wsp:Policy> > ... > > --- > > server.java: > > protected IfuncionessformswsPortType_IfuncionessformswsPort_Server() > throws Exception { > System.out.println("Starting Server"); > > SpringBusFactory bf = new SpringBusFactory(); > URL busFile = > > IfuncionessformswsPortType_IfuncionessformswsPort_Server.class.getResource("WEB-INF/beans.xml"); > Bus bus = bf.createBus(busFile.toString()); > bf.setDefaultBus(bus); > } > > public static void main(String args[]) throws Exception { > new IfuncionessformswsPortType_IfuncionessformswsPort_Server(); > System.out.println("Server ready..."); > > Thread.sleep(5 * 60 * 1000); > System.out.println("Server exiting"); > System.exit(0); > } > > --- > > and ServerPasswordCallback: > > public class ServerPasswordCallback implements CallbackHandler { > > public void handle(Callback[] callbacks) throws IOException, > UnsupportedCallbackException { > WSPasswordCallback pc = (WSPasswordCallback) callbacks[0]; > System.out.println("pc.getIdentifier() = " + pc.getIdentifier() + > ", > pc.getPassword() = " + pc.getPassword()); > > if ("joe".equals(pc.getIdentifier())) { > if (!pc.getPassword().equals("joespassword")) { > throw new IOException("wrong password"); > } > } > else { > throw new UnsupportedCallbackException(callbacks[0], "check > failed"); > } > } > } > > Testing this, I have seen that system.out in serverpasswordcallback appears > while using CXF v2.4 but not v2.3... Maybe it doesn't link the beans.xml > configuration file with the callback class for some reason? In a sample > from > CXF distribution v2.3 (ws_security\ut_policy\src\demo\wssec\server), it's > done also in this way. > > Any idea? > > Thanks in advance, > > Josep > > > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/WS-Security-in-CXF-2-4-vs-2-3-tp5728447.html > Sent from the cxf-user mailing list archive at Nabble.com. > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com
