RE: Fallo con WebServices Security

"pepegamba09" <pepegamba09-/[email protected]>
Newsgroups gmane.comp.java.javaspain
Message-ID <[email protected]>
Buenos días. Tenés "java -Daxis.clientConfigFile ... ", y el nombre de
la property es ClientConfigFile, con mayúscula. No estoy seguro de que
sea eso, pero arreglalo para descartarlo.

--- En [email protected], "Ignacio Elorriaga" <charlybro@...>
escribió:
>
>  Holaa a todo el mundo.
> 
> Bueno a ver si alguien sabe sobre WebServices Security en Java, que
me trae
> ya por el camino de la amargura estas ultimas semanas.
> A ver si algun paso(lo hago mal) o algo tngo mal configurado, porque
yo ya
> no se que le pasa.
> Segun los ejemplos que trae la web oficial de apache, tengo un
> WS(StockQuoteService) al cual le voy a meter la seguridad de
UsernameToken.
> Desde ya muchas gracias a quien responda, porque estoy ppffff
> 
> 
> Lo que hago es(con el tomcat inciado y desplegada una carpeta axis donde
> meto todo):
> 
> 1.- tengo el server-config.wsdd en el directorio WEB-INF, tal que:
> 
> <service name="stock-wss-01" provider="java:RPC" style="document"
> use="literal">
>   <requestFlow>
>    <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
>     <parameter name="passwordCallbackClass" value="
> samples.stock.client.PWCallback"/>
>     <parameter name="action" value="UsernameToken"/>
>    </handler>
>   </requestFlow>
>   <parameter name="allowedMethods" value="getQuote"/>
>   <parameter name="className"
value="samples.stock.client.StockQuoteService
> "/>
>   <parameter name="scope" value="application"/>
> </service>
> 
> 
> 2.- Hago un deploy del Servicio Web, con:
> java -cp %AXISCLASSPATH%
>
org.apache.axis.client.AdminClient-lhttp://localhost:8080/axis/services/AdminService
> server-config.wsdd
> 
> 3.- Me genero las clases del cliente con WSDL2Java:
> java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java -o .
> -Nhttp://localhost:8080/axis/services/stock-wss-01 samples.stock.client
> http://localhost:8080/axis/services/stock-wss-01?wsdl
> 
> 4.-Me genero el PWCallback, donde le indico el usuario que tiene que
entrar
> y la pass que le pondre.
> 
> public class PWCallback implements CallbackHandler {
>     public void handle(Callback[] callbacks)
>         throws IOException, UnsupportedCallbackException {
>         for (int i = 0; i < callbacks.length; i++) {
>             if (callbacks[i] instanceof WSPasswordCallback) {
>                 WSPasswordCallback pc = (WSPasswordCallback)
callbacks[i];
> 
>                 // set the password given a username
>                 if ("carlos".equals(pc.getIdentifer())) {
>                     pc.setPassword("pepe");
>                 }
>             } else {
>                 throw new UnsupportedCallbackException(callbacks[i],
>                     "Unrecognized Callback");
>             }
>         }
>     }
> 
> 
> 5.- Me genero el client_deploy.wsdd tal que:
> 
> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="
> http://xml.apache.org/axis/wsdd/providers/java">
> <transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender
> "/>
>   <globalConfiguration >
>    <requestFlow >
>     <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
>      <parameter name="action" value="UsernameToken"/>
>      <parameter name="user" value="carlos"/>
>      <parameter name="passwordCallbackClass" value="
> samples.stock.client.PWCallback"/>
>      <parameter name="passwordType" value="PasswordText"/>
>     </handler>
>    </requestFlow >
>   </globalConfiguration >
> </deployment>
> 
> 
> 6.- Ejecuto mi clase de prueba del cliente, tal que:
> java -Daxis.clientConfigFile=client_deploy.wsdd -cp %AXISCLASSPATH%
> samples.stock.client.StockServiceClient TBS
> 
> y me da un error que dice:
> 
> *Exception in thread "main" AxisFault
> faultCode: {
> http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
> faultSubcode:
> faultString: WSDoAllReceiver: Request does not contain required Security
> header
> faultActor:
> faultNode:
> faultDetail:
> {http://xml.apache.org/axis/}hostname:zaz-elorriagai
> 
> WSDoAllReceiver: Request does not contain required Security header
> at org.apache.axis.message.SOAPFaultBuilder.createFault(
> SOAPFaultBuilder.java:222)
> at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java
> :129)
> at org.apache.axis.encoding.DeserializationContext.endElement
> (DeserializationContex
> t.java:1087)
> at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndEl
> ement(Unknown Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown
> Source)
> at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown
> Source)
> at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown
> Source)
> at
>
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocum
> ent(Unknown Source)
> at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
> Source)
> at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
> Source)
> at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
> Source)
> at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
> Source)
> at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
> Source)
> at javax.xml.parsers.SAXParser.parse(Unknown Source)
> at org.apache.axis.encoding.DeserializationContext.parse(
> DeserializationContext.jav
> a:227)
> at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
> at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
> at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke
> (MustUnderstandChecker
> .java:62)
> at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
> at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
> at org.apache.axis.client.Call.invoke(Call.java:2767)
> at org.apache.axis.client.Call.invoke(Call.java:2443)
> at org.apache.axis.client.Call.invoke(Call.java:2366)
> at org.apache.axis.client.Call.invoke(Call.java:1812)
> at samples.stock.client.StockWss01SoapBindingStub.getQuote
> (StockWss01SoapBindingStu
> b.java:106)
> at
samples.stock.client.StockServiceClient.main(StockServiceClient.java:15)
> 
> 
> 
> **Saludosss y muchas gracias por adelantado*
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.