Fallo con WebServices Security

"Ignacio Elorriaga" <[email protected]>
Newsgroups gmane.comp.java.javaspain
Message-ID <[email protected]>
 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.