Ce que j'ai recherché jusqu'à présent, la plupart des gens disent qu'Apache Shiro est facile à utiliser et facile à intégrer avec CAS (pour SSO, etc.). Juste pour demander si quelqu'un a de l'expérience avec les deux et lequel utiliser et pourquoi l'un est meilleur que l'autre?
J'ai récemment dû évaluer la sécurité du Shiro et du printemps. Nous sommes allés avec la sécurité du printemps (en fait, nous avons étendu la sécurité du printemps pour utiliser les chaînes d'autorisation shiro d'une meilleure façon - avec des variables d'instance sur les annotations).
Sécurité Spring
Shiro
Beaucoup de développeurs Shiro utilisent Spring pour leurs applications, donc Shiro fonctionne à merveille dans les environnements Spring. La rétroaction générale que nous avons reçue jusqu'à présent est que Shiro est également beaucoup plus facile à comprendre (pour la plupart des gens) que Spring Security.
Cependant, si vous souhaitez une prise en charge complète du clustering de session sur n'importe quel conteneur Web, seul Shiro le supportera facilement. La crypto de Shiro est également très simple/facile à utiliser.
Choisissez celui qui correspond le mieux à votre modèle mental - les deux fonctionneront parfaitement dans les environnements printaniers.
J'ai évalué la sécurité de Shiro et Spring. Le principal avantage que les gens prétendent à propos de Shiro est la simplicité, mais je pense que Spring Security (3.0) n'est pas complètement compliqué. Cela m'a pris presque le même nombre de lignes de configuration à mettre en place. De plus, Spring Security est beaucoup mieux documenté que Shiro. Mais le principal problème avec Shiro est qu'il ne prend pas en charge OAuth ou Digest Authetication (ils prévoient de l'inclure à l'avenir https://issues.Apache.org/jira/Parcourir/SHIRO-2 ) Ma conclusion: Aujourd'hui j'irais pour la sécurité du printemps.
Shiro est préférable d'utiliser. Son code très simple qui vous offre la flexibilité de l'étendre et de fournir votre comportement personnalisé là où vous en avez besoin. Il fournit également une implémentation du cache interne d'Ehcache à travers laquelle vous pouvez répliquer la session sur les clusters de serveurs. Si vous envisagez de concevoir un système RBAC (contrôle d'accès basé sur les rôles) pour votre application, il vous offrira une flexibilité pour gérer les autorisations au niveau des actifs et son mécanisme de contrôle d'accès est beaucoup plus flexible que la sécurité Spring.