Authentication Web services
---------------------------

                 Key: TUSCANY-3997
                 URL: https://issues.apache.org/jira/browse/TUSCANY-3997
             Project: Tuscany
          Issue Type: Wish
          Components: OASIS Compliance - TUSCANY
    Affects Versions: Java-SCA-1.6.2
         Environment: BeaWeblogic 10.3
            Reporter: Tiziana Basile
            Priority: Blocker


I work on a web service using Tuscany, and I need to use authentication on 
server side. I have a composite file:
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; 
           xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"; 
           xmlns:consulta="http://ConsultaService"; 
           targetNamespace="http://ConsultaService"; 
           name="ConsultaService">
        <component name="ConsultaService">
                <implementation.java class="com.pride.app.ConsultaImpl"/>
                <service name="ConsultaService">
                        <interface.java 
interface="com.pride.app.ConsultaService"/>                     
                        <binding.ws requires="authentication"/>
                        <!--binding.ws/-->    
                </service>
        </component>
</composite>

A definitions.xml file like: 
<?xml version="1.0" encoding="UTF-8"?>
<sca:definitions xmlns="http://www.osoa.org/xmlns/sca/1.0";
                                    
targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0";
                                    
xmlns:sca="http://www.osoa.org/xmlns/sca/1.0";
                                    
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0";>
                        <!--xmlns:consulta="http://ConsultaService"; -->         
                
    <sca:intent name="authentication"    constrains="sca:binding.ws">
      <description>
        Communitcation thro this binding required Authentication.
      </description>
    </sca:intent>       
    <sca:policySet name="specialAuthenticationPolicy" provides="authentication" 
appliesTo="//sca:binding.ws">
    <tuscany:wsConfigParam>
        <parameter name="InflowSecurity" >
            <action>
                <items>UsernameToken</items>
                <user>ConsultaUser</user>
                
<passwordCallbackClass>com.pride.app.common.PWExtInterfaceHandler</passwordCallbackClass>
                <passwordType>PasswordText</passwordType>
            </action>
        </parameter>
    </tuscany:wsConfigParam>
    </sca:policySet>       
</sca:definitions>


The PWExtInterfaceHandler java class is:


package com.pride.app.common;


import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;

import org.apache.log4j.Logger;
import org.apache.ws.security.WSPasswordCallback;


public class PWExtInterfaceHandler implements CallbackHandler {
        
        //public class PWExternalInterfaceHandler_ implements CallbackHandler
        //{ //CallbackHandler รจ l'interfaccia con cui il sistema richiede le 
credenziali di accesso dell'utente
                
        private Logger log; 
                
    public void handle(Callback[] callbacks)throws IOException, 
UnsupportedCallbackException 
    {        // Il metodo handle di CallbackHandler riceve in ingresso un array 
di opportuni callback
                
     log = Logger.getLogger(PWExtInterfaceHandler.class.getName());
     for (int i = 0; i < callbacks.length; i++)
                {
                     if (callbacks[i] instanceof WSPasswordCallback) 
                      { 
                        WSPasswordCallback pwcb = 
(WSPasswordCallback)callbacks[i]; //La classe WSPasswordCallback fornisce il 
nome di utente
                        String id = pwcb.getIdentifer(); 
                        if (pwcb.getUsage() == 
WSPasswordCallback.USERNAME_TOKEN) 
                                if ("ConsultaUser".equals(id)) 
                                        pwcb.setPassword("pluto");
                      }         
                        else {
                            throw new 
UnsupportedCallbackException(callbacks[i], "Unrecognized Callback");}
                        
                      }         
                
          log.info("handle end process");       
          }
         }

My request is:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
                            xmlns:xsd="http://www.w3.org/2001/XMLSchema";
                           
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
<soapenv:Header>
    <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"; 
soapenv:mustUnderstand="true">
      <wsse:UsernameToken>
        <wsse:Username>ConsultaUser</wsse:Username>
        <wsse:Password Type ="wsse:PasswordText">pippo</wsse:Password>
      </wsse:UsernameToken>
    </wsse:Security>
</soapenv:Header>
<soapenv:Body>
                <m:consultaService xmlns:m="http://app.pride.com/";>
                        <ConsultaRequest>
                                <inputReq>pippo</inputReq>
                        </ConsultaRequest>
                </m:consultaService>
</soapenv:Body>
</soapenv:Envelope>

BEA Weblogic give to me this error: HTTP error: could not post file:..on server 
... (500) Error sending soap data.
What am I missing?
Thank you





--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to