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

EDI/Outils Discussion :

WebServices HTTPS Flex/JBoss 4.2.2.GA


Sujet :

EDI/Outils

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut WebServices HTTPS Flex/JBoss 4.2.2.GA
    Bonjour à toutes et à tous !
    Je suis un petit nouveau dans ce forum mais j'ai un réel problème que je n'arrive pas à régler.

    Si je post sur ce forum c'est que je sais qu'il y a des gens compétents !


    Présentation du problème :


    *J'ai une application JAVA qui a des WebServices (des points d'entrées pour l'application mère). Tout marche parfaitement en HTTP.

    *Côté client, Flex avec FlexBuilder3 et l'import de WebServices, création des classes OK avec l'assistant.

    Etape suivante :

    *Sécurisation d'un WS avec mise en place du HTTPS: j'ai besoin de passer le login et le mot de passe au serveur que je contact.
    Paramétrage de TomCat et du fichier web.xml ok, le web service est bien accessible sur HTTPS et passe sur le port 8443 automatiquement depuis un browser.

    Voici le fichier web.xml:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <security-constraint>
        <web-resource-collection>
          <web-resource-name>All resources</web-resource-name>
          <url-pattern>/UserAuthenticationWS</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>
    Voici le fichier server.xml et mes connecteurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <Connector port="8081" address="${jboss.bind.address}"    
             maxThreads="250" maxHttpHeaderSize="8192"
             emptySessionPath="true" protocol="HTTP/1.1"
             enableLookups="false" redirectPort="8443" acceptCount="100"
             connectionTimeout="20000" disableUploadTimeout="true" />
     
        <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   clientAuth="false" 
    	       keystoreFile="${jboss.server.home.dir}/ssl/kc.keystore"
    	       keystorePass="monpasswd" sslProtocol="TLS" />
    *Mise en place d'un crossdomain.xml côte serveur sous deploy/jboss-web-deployer/ROOT.war dont voila le contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
    	<allow-access-from domain="*" to-ports="*" secure="false"/>
    </cross-domain-policy>

    A l'import du WS, impossible de régénérer les classes côté client. L'erreur standard "Unable to load WSDL."

    Un petit coup d'oeil dans les logs de FlexBuilder me dit :

    javax.wsdl.WSDLException: WSDLException: faultCode=OTHER_ERROR: Unable to resolve imported document at 'https://localhost:8443/monAppli/UserAuthenticationWS?wsdl'.: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    Recherche Google la dessus m'explique que le certificat n'est pas connu et que c'est ca qui fait planter tout ....

    Alors pour faire les choses correctement j'ai même demander un certificat SSL de test pour être sur que tout se passe bien, et du coup IE qui se plaignait en accédant au HTTPS ne se plaint plus.
    J'ai même importé les certificats dans le dépôts de certificats du jre (jre/lib/security/cacerts) mais rien n'y fait, j'ai toujours la même erreur ...

    De plus j'ai remarqué la chose suivante :

    - Si j'importe un WS https Amazon, aucun problème, je peux générer les classes correctement et je n'ai aucune erreurs. De plus quelques topics montrent que l'import de WS sur HTTPS est possible.

    Ma question est donc la suivante : est ce que ce problème est déjà arrivé à quelqu'un d'entre vous ? Si oui comment l'avez vous résolu ?

    Je suis intéressé de connaître les éventuelles manipulations que vous avez réalisé côté serveur :
    Ai-je un fichier ou une instruction manquante ?
    Pourquoi l'import marche-t-il avec un site comme Amazon dans le même projet et que je ne peut pas insérer un WS sur HTTPS que j'ai fait moi même ?

    J'espère que vous pourrez m'apporter plein d'idées, car j'en suis à court ...

    Merci de votre aide

    Olivier

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Par défaut To whom it might concern
    Bonjour a tous,

    Après une nuit blanche à retourner le problème dans tous les sens, voici le problème présenté d'une manière plus synthétique :

    Le certificat n'était pas accepté par Flex Builder puisqu'il était signé personnellement (self signed certificate).
    Je disais a Flex Builder d'utiliser le JDK 1.6.xx, et j'avais donc importé le certificat dans le cacerts mais cela ne changeait rien ...

    Et bien figurez vous que FB dispose de son propre cacerts, qui est le dépôt de certificats 'surs'.

    Il semble que la configuration côté serveur soit OK, rien de particulier à prioris avec le crossdomain.xml.

    Après avoir ajouté le certificat a la main, voir l'import avec keytool, Flex Builder ne se plaint plus ... et me génère les classes ... chouette

    J'espère que ça pourra servir à d'autre

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

Discussions similaires

  1. Accès à un WebService HTTPS via un proxy
    Par BOBI59 dans le forum Websphere
    Réponses: 0
    Dernier message: 24/10/2011, 10h35
  2. Lecture webservice https
    Par tamildark dans le forum Services Web
    Réponses: 4
    Dernier message: 09/03/2011, 16h35
  3. WebService HTTP 400 Bad Request
    Par mrkinfo dans le forum Services Web
    Réponses: 3
    Dernier message: 09/12/2009, 16h41
  4. Firebird dans un Webservice : HTTP 500
    Par cedtao dans le forum Services Web
    Réponses: 4
    Dernier message: 07/04/2009, 12h11
  5. [C#] [WebServices] Http Request et SOAP
    Par Piolet dans le forum Windows Forms
    Réponses: 17
    Dernier message: 02/02/2009, 17h42

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