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 :

Ajouter un header security dans une requete SOAP


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut Ajouter un header security dans une requete SOAP
    Bonjour,

    Je veux ajouter un une balise de sécurity dans le Header Soap sous cette forme :
    <soapenv:Header>
    <simpleAuth xmlns="http://zzzz"
    username="xxxx"
    password="xxxx" />
    </soapenv:Header>

    J'utilise la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SOAPHeaderElement authentication = new SOAPHeaderElement("http://zzzz", "simpleAuth");
     
        	authentication.addAttribute("http://zzzz", "username", "xxxx");
        	authentication.addAttribute("http:/zzzz", "password", "xxxx");
        	authentication.setPrefix(null);
        	authentication.setMustUnderstand(false);
    Mais j'ai le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ns1:simpleAuth ns1:username="xxxx" ns1:password="xxxx" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="http://zzzz" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
    Je veux que ça soit de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <simpleAuth xmlns="http://zzzz"
    		username="xxxx" 
    		password="xxxx"  />
    Merci pour votre aide .

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    C'est ce que tu as sauf que tu précise le namespace que tu utilise "ns1", comme nom local pour ton namespace que tu as définis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:ns1="http://zzzz"
    D'ailleurs tu donne le namespace encore une fois dans tes attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    authentication.addAttribute("http://zzzz", "username", "xxxx");
    authentication.addAttribute("http:/zzzz", "password", "xxxx");
    Ce qui fait que ton XML définit le namespace que tu lui as donnée et l'utilise comme spécifié !

    Ci joint les documentations des méthodes que tu utilise :
    https://axis.apache.org/axis/java/ap...erElement.html
    https://axis.apache.org/axis/java/ap...geElement.html

    Il existe les mêmes méthodes sans précision du namespace. Mais, je ne vois pas en quoi c'est problématique que tu ai définit ton namespace, c'est même bien...

    Edit :
    Tu veux utiliser le default namespace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     authentication.addNamespaceDeclaration("xmlns","http:/zzzz");
    Cela devrait fonctionné !

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    C'est pas mon propre WS,
    J'ai généré un client à partir d'un wsdl qu'in prestataire m'a envoyé et pour attaqué son ws il faut ajouté la balise de sécurité dans le Header , et si les namespace sont ajouté dans la requete ; elle est rejetée
    il faut que je lui envoie que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <simpleAuth xmlns="zzzz"
    		username="xxxx" 
    		password="xxxx"  />

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Normalement avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    authentication.addNamespaceDeclaration("xmlns","http:/zzzz");
    authentication.addAttribute("username", "xxxx");
    authentication.addAttribute("password", "xxxx");
    Ca passe ...
    Si ce n'est pas le cas donne nous ce que ça renvoie chez toi.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre du Club
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Points : 49
    Points
    49
    Par défaut
    J'ai reussi en utulisant le setAttribute à la place de addAttribute.
    Merci kolodz

  6. #6
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Juste pour information le setAttribut()utilise le addAttribute()Ce n'est donc pas ce qui a résolu ton problème !

    Source de l'api :
    http://grepcode.com/file/repo1.maven...lang.String%29

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout des dates manquantes dans une requete
    Par olibara dans le forum Développement
    Réponses: 4
    Dernier message: 08/04/2014, 15h00
  2. Ajouter un champ conditionnel dans une requete
    Par Bernard67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/09/2008, 21h18
  3. Ajout d'un champ dans une requete
    Par maysa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/04/2007, 11h35
  4. [SQL] Ajout d'un compteur dans une requete
    Par at_first dans le forum Access
    Réponses: 7
    Dernier message: 04/10/2006, 16h40
  5. ajouter 1 mois à une date dans une requete
    Par alain.lc dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 04/04/2005, 12h05

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