Salut à tous.
Je suis en stage et la tache qui m'incombe pour le moment est de faire un petit benchmark des possibilités pour sécuriser les web services en java (au sens large, intégrité, confidentialité, authentification,... tout le barda quoi).
Le problème? Ben je suis fort fort perdu, ne serais-ce que comprendre ce qui existe et ce qui fonctionne est déjà pas la panacée. Alors je viens vous faire part de mes observations sur l'existant histoire que vous puissiez me corriger si je me trompe ou m'en dire plus sur les pistes que je n'ai pas encore exploré si vous vous êtes retrouvés dans le même cas que moi par le passé.
Pour le moment j'ai deux serveurs faits en jax-ws avec la dernière version de cxf comme implémentation (l'implémentation peut-être appelée à changer si le besoin s'en fait sentir, mais c'est fort peu envisageable pour la définition des services).
Mon maitre de stage n'est pas très chaud pour utiliser simplement du https, alors je planche sur un moyen de mettre en place le standard Oasis WSS .
Tout d'abord coté CXF: apparemment le support est naze autant que possible. La doc est quasiment inexistante sur le site officiel. CXF utilise pour cela un autre projet apache nommé WSS4J pour lequel je n'ai pas pu trouver de doc non plus. Les seuls discussions que je croise à ce sujet parlent d'exceptions incompréhensible après avoir suivi l'unique tuto et ne sont jamais résolues. Jusqu'à preuve du contraire je me vois forcé de considérer que WS-Security + CXF il faut oublier.
Ensuite coté WSIT: La visiblement tout le monde en parle, tout le monde il est content. En fait les seul témoignages positifs que j'ai pu croiser parlaient de WSIT. Mouais, c'est sur que ça a l'air génial avec une belle configuration entièrement intégrée à Netbeans et un serveur Glassfish reluisant. L'ennui c'est qu'ici on utilise jamais Netbeans et le moins souvent possible Glassfish (allez savoir pourquoi). Aussi il me faudrait un peu plus d'infos que je n'ai pas pu dégoter ailleurs (tous les docs que j'ai pu croiser prenaient leur pied en montrant de super screen shots, mais oubliaient bizarrement de parler du fond):
WSIT c'est quoi? Une spec au même titre que jax-ws ou une implémentation comme Metro? Dans le second cas une implémention de quoi? Il y a d'autres implémentations? Ca tourne sur d'autres serveurs d'applications? Bref voila moult questions venues d'ailleurs qui méritent bien une Mulderisation.
Comme on utilise beaucoup Spring par ici, j'ai aussi pensé fouiller un peu du coté d'Acegi. L'ennui c'est que je n'ai pas encore compris si il était possible de l'utiliser en conjonction avec Jax-Ws ou si il était obligatoire d'utiliser les classes Spring spécifiques pour générer des web services. Dans le second cas ça ne m'intéresse pas trop, je préfèrerais conserver mes interfaces annotées (parce que ça a trop la classe).
Voila c'est à peu près tout pour l'instant, si quelqu'un a quelques compléments d'information, ou simplement une remarque constructive, je le remercie d'avance de participer à la conversation. Moi j'essaierais de faire des comptes rendus si je trouve quoi que ce soit d'utile.
Partager