Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    22

    Autenticazione con WS security

    Salve ho un problema con WS security. Allora ho utilizzato la seguente policy:

    codice:
    <wsp:Policy wsu:Id="UTOverTransport"
                         xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-ssecurity-utility-1.0.xsd"
                         xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
               <wsp:ExactlyOne>
                   <sp:SignedSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/wssecuritypolicy/200702">
                      <wsp:Policy>
                         <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/wssecuritypolicy/200702/IncludeToken/AlwaysToRecipient">
                             <wsp:Policy>
                                <sp:HashPassword/>
                             </wsp:Policy>
                         </sp:UsernameToken>
                      </wsp:Policy>
                  </sp:SignedSupportingTokens>
    
                 <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
                    <ramp:passwordCallbackClass>org.example.www.classi.PWCBHandler</ramp:passwordCallbackClass>
                 </ramp:RampartConfig>
             </wsp:ExactlyOne>
            </wsp:Policy>
    e ho scritto la seguente classe java:

    codice:
    package org.example.www.classi;
    
    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.ws.security.WSPasswordCallback;
    
    public class PWCBHandler {
    	
    	public class PBCBHandler implements CallbackHandler{ //CallbackHandler è l’interfaccia con cui il sistema richiede le credenziali di accesso dell’utente
    		
    	    public void handle(Callback[] callbacks)throws IOException, UnsupportedCallbackException { // Il metodo handle di CallbackHandler riceve in ingresso un array di opportuni callback
    	    	for (int i = 0; i < callbacks.length; i++) {
    	    		WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i]; //La classe WSPasswordCallback fornisce il nome di utente
    	    		String id = pwcb.getIdentifier(); // Questo metodo restituisce l’username
    	    		int usage = pwcb.getUsage(); // Questo metodo restituisce un intero. Si possono distinguere i seguenti tre casi: 1)se usage = 2 viene usato un UNSERNAME_TOKEN, 2)se usage = 3 viene usata una SIGNATURE, 3) se usage = 1 viene usato un DECRYPT
    	    		
    	    		if(usage == WSPasswordCallback.USERNAME_TOKEN )// Logica per ottenere la password per l’USERNAME_TOKEN per validare l’USERNAME_TOKEN
    	    			if ("pippo".equals(id)) 
    	    				pwcb.setPassword("progettoWS");
    	    		
    	    	}
    	    }
    	 }
    }
    solo che quando provo ad inviare la richiesta con soapUI mi esce il seguente errore:

    codice:
    <faultcode>axis2ns2:MustUnderstand</faultcode>
             <faultstring>Must Understand check failed for header http://docs.oasis-open.org/wss/2004/...secext-1.0.xsd : Security</faultstring>
    quale potrebbe essere il problema???

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    22
    Sono riuscita a capire il problema ma nn so proprio come lo possa risolvere.

    Devo settare mustUnderstand=true ma nn so come farlo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.