2012-01-16 2 views
3

Je développe un webservice avec ejb 3 et glassfish 3.1.1. J'utilise Netbeans 7.0 et j'aimerais savoir, comment activer https sur le port 8181 pour ce webservice.Activer https pour java ejb Webservice

Je n'ai pas besoin de méthode d'authentification, il suffit de sécuriser la communication via https!

Thx

Adem

Répondre

9

Vous devez spécifier une connexion sécurisée comme expliqué here. Pour l'essentiel, dans votre descripteur de déploiement web.xml vous devez définir:

<security-constraint> 
    ... 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

Cependant NetBeans insère le code pour vous: ouvert web.xml, cliquez sur l'onglet Sécurité en haut de l'éditeur, puis cliquez sur Ajouter Constraint sécurité bouton. Tapez un nom, dans le modèle d'URL write/*, définissez toutes les méthodes HTTP et spécifiez Confidential comme garantie de transport.

Si vous n'avez pas web.xml, parce que vous déployez simplement l'Enterprise Java Bean, créez un nouveau GlassFish Descriptor glassfish-ejb-jar.xml et le remplir comme celui-ci (ou voir here la hiérarchie des fichiers):

<glassfish-ejb-jar> 
    <enterprise-beans> 
    <ejb> 
     <ejb-name>Hello</ejb-name> 
     <webservice-endpoint> 
     <port-component-name>Hello</port-component-name> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
     </webservice-endpoint> 
    </ejb> 
    </enterprise-beans>/> 
</glassfish-ejb-jar> 

Votre l'application utilisera le port 8181 à partir de maintenant. Pour plus d'informations sur la configuration de la sécurité dans une application Web NetBeans et here pour en savoir plus sur les certificats, voir here.

+0

Etes-vous sûr que cette solution fonctionne également sur les services web ejb? Je peux imaginer que cela serait applicable lors de l'utilisation de webservice sur des servlets, mais que diriez-vous ejb webservice. Est-il possible de définir la garantie de transport pour les services web ejb dans un fichier descripteur, peut-être 'sun-ejb-jar.xml'? – AdemC

+0

@AdemC: J'ai mis à jour ma réponse – perissf

+0

Merci, ça marche! Sa magie avec tous ces fichiers descripteurs ... – AdemC