IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Chiffrage soap + XML Encryption


Sujet :

Services Web Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut Chiffrage soap + XML Encryption
    Bonjour,

    Cela fais 1 semaine que je cherche sans trouvé, alors je pense que certains pourront m'aider.

    Je suis en train de me former sur les web services avec SOAP, et maintenant que j'ai bien compris leur fonctionnement, je m'attaque à la sécurité.

    J'aimerai d'abord avoir des confirmations sur ce que j'ai compris (si déjà je vais dans la bonne direction) :
    1) Pour chiffrer l'en-tête d'un message SOAP, on utilise bien WS-Security ?
    2) Pour chiffrer le corps d'un message, on utilise bien XML ENcryption ?

    Si c'est juste, j'ai réussi partiellement la première étape avec une identification + mdp, mais j'aimerai savoir comment on génère le mot de passe (il est générer automatiquement avec soapUI quand je teste mon web service, mais comment fait-on en java par exemple ?)

    Et pour la deuxième partie, j'ai compris le principe, mais je ne sait pas comment le mettre en place (en gros a quel moment, comment, par qui/quoi est codé le message)

    Merci d'avance, j'espère avoir été le plus clair possible.

  2. #2
    oca
    oca est déconnecté
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Par défaut
    Tu es bien sur la bonne voie.

    cela dit, la sécurité n'est pas le sujet le plus simple et c'est un sujet assé vaste...
    Je te conseil ce bouquin qui est très bien :
    http://www.manning.com/kanneganti/

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Merci
    Je vais voir si je peux pas me faire payer le bouquin par la boite

    Et sinon j'aurai voulu savoir quel était le framework le plus simple à utiliser pour implémenter un client WS et le WS en lui même car je supose qu'utiliser le même framework pour les 2 sera le plus simple ?

    J'ai vu pas mal de chose, notamment implémentation wss4j via CFX d'apache qui semble être pas trop mal ...

  4. #4
    oca
    oca est déconnecté
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Par défaut
    j'aime bien cxf aussi, après... c'est une question de goût... axis2 est très bien, metro aussi (et est intégré "de base" depuis le jdk1.6...)
    Si tu le peux, essaye de rester dans un produit qui respecte la norme jax-ws.
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Merci
    Je pense que je vais m'orienter vers cxf (c'est celui sur lequel j'ai trouvé le plus de doc).

    Pour l'instant, j'ai un service chiffré basé sur l'authentification qui marche (je le teste avec soapUI :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <soapenv:Envelope xmlns:impl="http://impl.ws.sun.labo.com" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Header>
          <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
             <wsse:UsernameToken wsu:Id="UsernameToken-18523531" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                <wsse:Username>JN</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">YUfXTzY4WpQltQ3tOw08ioEPgLs=</wsse:Password>
                <wsse:Nonce>lVqIGNunLnctbXmzTs6ucQ==</wsse:Nonce>
                <wsu:Created>2008-12-22T15:39:24.138Z</wsu:Created>
             </wsse:UsernameToken>
          </wsse:Security>
       </soapenv:Header>
       <soapenv:Body>
          <impl:sayHello>
             <impl:name>World</impl:name>
          </impl:sayHello>
       </soapenv:Body>
    </soapenv:Envelope>
    et j'ai le bon retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <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:Body>
          <sayHelloResponse xmlns="http://impl.ws.sun.labo.com">
             <sayHelloReturn>Hello World !</sayHelloReturn>
          </sayHelloResponse>
       </soapenv:Body>
    </soapenv:Envelope>
    Maintenant j'aimerai implémenter un client JAVA pour utiliser ce service ... mais impossible, j'ai tester plusieurs tuto mais j'ai toujours des biblios manquantes ou alors une erreur lors de la compilation ou exécution.

    Quelqu'un aurait-il un exemple d'un client ?

  6. #6
    oca
    oca est déconnecté
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Par défaut
    J'ai mis un exemple dans ce sujet (ds le 4ème message je crois...)
    http://www.developpez.net/forums/d58...rity-sous-cxf/
    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Par défaut
    Merci
    J'ai essayé ton code, mais au niveau du client j'ai toujours cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.io.IOException: Server returned HTTP response code: 500 for URL: http://127.0.0.1:8080/wssecu1/services/ServiceImpl
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    	at oca.client.HttpSOAPClient.httpCall(HttpSOAPClient.java:62)
    	at oca.client.HttpSOAPClient.main(HttpSOAPClient.java:13)
    Voici la source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    try {
    	        // Send the request
    	        URL url = new URL("http://127.0.0.1:8080/wssecu1/services/ServiceImpl");
    	        URLConnection conn = url.openConnection();
    	        conn.setDoOutput(true);
    	        wr = new OutputStreamWriter(conn.getOutputStream(),"UTF-8");
    	        wr.write(messageSecu);
    	        wr.flush();
    	        // Get the response
                    System.out.println(conn.getInputStream());
    	        rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
    	        String line;
    	        while ((line = rd.readLine()) != null) {
    	        	System.out.println(line);
    	        }
    	    } catch (Exception e) {
    	    	e.printStackTrace();
    	    }
    Quelle adresse je dois mettre pour l'url ? J'ai essayé plein de truc mais rien de marche !

  8. #8
    oca
    oca est déconnecté
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2004
    Messages : 354
    Par défaut
    Essaye plutôt le client oca.client.TestCXFClient

    Il faut commencer par lancer le serveur :
    oca.server.TestCXFServer

    qui fournit un service de test sur http://localhost:9083/test?wsdl
    A+

Discussions similaires

  1. [SOAP][XML-RPC] Besoin d'explications sur le fonctionnement
    Par walid0577 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 01/05/2007, 18h52
  2. Réponses: 9
    Dernier message: 01/03/2007, 15h13
  3. [XML][ENCRYPTION] encoder des gros fichiers avec AES_128
    Par marcsaker dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 29/09/2006, 09h18
  4. [SOAP][XML][C#.NET] Téléchargement de fichiers XML
    Par juniorAl dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/06/2005, 09h35
  5. [SOAP] [XML-RPC] la différence
    Par david42 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/03/2004, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo