Salut,
La différence : JAAS c'est du Java standard, Realm c'est du Java EE.
Il y en a d'autres aussi, mais en gros : Si tu décides de travailler avec Realm, c'est pratique car une bonne aprtie du boulot est faite pour toi par le server d'application, à savoir l'authentification en soit. Il te suffit de configurer le Realm que tu souhaites utiliser (ou de l'écrire toi même si aucun disponible ne te convient), et ensuite tu as accès à trois méthodes dans l'objet Request reçu dans ta servlet (aussi accessible depuis un contexte JSF ou WebService si tu le souhaites).
Ceci dit, JAAS a des avantages non négligeables:
- Comme dit ci dessus, JAAS c'est du Java standard, c'est-à-dire que tu pourras aussi tester les permissions en dehors d'un contexte JavaEE, contrairement à Realm qui nécessite un accès au contexte de la requete.
- JAAS permet une beaucoup plus grande granularité dans les permissions, et une plus grande flexibilité (qui se paye ceci dit en une prise en main moins facile...)
- JAAS est standard, alors que Realm, bien que spécifié, ne définit aucune classe standard à tous les servers d'application, ce qui fait qu'un module Realm existant sous Tomcat peut ne pas exister sous Glassfish
Avec JAAS tu devra écrire ton LoginModule, et faire ton authentification à la main (avec un Filtre JavaEE ça se fait plutôt bien). Quelques liens qui pourraient t'intéresser :
Bon courage
Partager