Glassfish JAX-WS side by side SSL / insecure EJB webservice

est-il possible de lancer un seul service @WebService en tant que sécurisé et non sécurisé en même temps, de préférence en utilisant la même URL, sauf pour la différence de protocole http/https?

je suis capable d'exécuter le service sécurisé ou non sécurisé en utilisant:

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

ou

<transport-guarantee>NONE</transport-guarantee>

à l'intérieur de sun-ejb-jar.xml

IE.

<ejb>
  <ejb-name>MyEJB</ejb-name>
  <webservice-endpoint>
    <port-component-name>MyWebService</port-component-name>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </webservice-endpoint>
</ejb>

des Suggestions?

31
demandé sur Justin 2010-05-26 14:05:54

3 réponses

pourquoi ne pas utiliser le serveur d'applications proxy avec le serveur HTTP Apache ou similaire? Je le fais généralement de cette façon et laisse SSL handshaking/open text connection à HTTP devant.

2
répondu Bart Prokop 2013-01-23 19:43:35

il suffit de retirer le <transport-guarantee>CONFIDENTIAL</transport-guarantee>, votre haricots seront disponibles sur http et https. <transport-guarantee>CONFIDENTIAL</transport-guarantee> signifie sécurité stricte, toute requête http à venir est redirigée vers https(ssl).

suppression de cette <transport-guarantee>CONFIDENTIAL</transport-guarantee> vous obtiendrez une grande flexibilité.

1
répondu Ajit 2013-01-24 11:13:25

je sais que c'est une vieille question. Toutefois, j'ai le plaisir de vous fournir cette réponse puisque j'ai récemment rencontré exactement le même problème.

Conformément à la documentation Oracle:

  • préciser confidentiel lorsque l'application exige que les données soient transmises de manière à empêcher d'autres entités d'observer le contenu de la transmission.
  • N'en spécifier Aucune pour indiquer que le conteneur doit accepter les requêtes limitées sur toute connexion, y compris une non protégée.

Puisqu'il s'agit simplement d'une garantie de transport, une valeur "NONE" devrait vous fournir la fonctionnalité que vous souhaitez, à savoir un Service web EJB répondant à la fois aux requêtes http et https.

le problème ici est un bug dans Glassfish qui apparemment vous limite à accepter les requêtes http ou https à votre Service web EJB:

selon la dernière tâche jira la question devrait être fixée et travailler à partir de Glassfish 4.0_b75.

1
répondu Dag 2013-10-10 13:00:52