Question

Quelle est la meilleure solution de sécurité pour Grails parmi acegi, jsecurity et Stark security?

Était-ce utile?

La solution

JSecurity est en fait devenu un projet Apache sous le nom Apache Ki il y a quelque temps et ils n'étaient pas satisfaits du changement de nom pour une raison quelconque et l'ont changé en Apache Shiro peu après. De plus, Stark n'est qu'un wrapper de plug-in grails pour Spring Security et acegi sont à l'origine du projet Spring Security.

Alors lequel utiliser?

Tout d’abord , Spring Security est une API de sécurité évoluée et déjà largement utilisée. C’est donc un bon choix du point de vue de la stabilité, de la prise en charge et plus particulièrement de la sécurité. Shiro y perd malheureusement un peu car, autant que je sache, son adoption n’a toujours pas été généralisée.

Deuxièmement , le cadre de sécurité est très important car il doit pouvoir vous permettre de personnaliser votre système de sécurisation de votre application. Par exemple, certaines personnes apprécient le fonctionnement de Shiro ( voir ce didacticiel , en particulier la partie sous le titre "Quickstart.java" ), d’autres ne pourraient pas vivre sans le truc Spring-esque de Spring Security et ainsi de suite. Essentiellement, vous devez essayer les deux et déterminer s'ils répondent à vos besoins du point de vue de la convivialité.

Troisièmement , assurez-vous de la sécurité réelle! La sécurité de Spring peut être sécurisée, Shiro est probablement , car aucune adoption généralisée ne cache facilement les problèmes de sécurité, voir par exemple Vulnérabilités de Firefox pour voir comment l’accroissement du nombre d’utilisateurs commence à affecter la sécurité réelle de l’application à long terme.

Pour terminer, si je devais choisir pour vous, je choisirais Spring Security car il est largement utilisé, il est garanti d'être sécurisé et déjà intégré à Grails. JSecurity / Ki / Shiro n’est pas mauvais du tout et je l’utilise depuis un moment, mais pour le moment, il est dans une sorte d’état flou pour qui sait quelle raison et pour un cadre de sécurité tout simplement inacceptable.

Edit: Cela fait plus de 1 an et demi que j'ai répondu à cette question. J'ai donc ressenti le besoin de revenir et de dire que notre société avait récemment décidé de se joindre à Spring Security en raison de sa haute capacité de fonctionnalité. Bien sûr, cela me rend un peu partial, mais dans tous les cas, je dirais que Spring Security est la voie à suivre.

Autres conseils

La réponse d'Esko est excellente et complète. J’ai fait une évaluation des différents cadres il ya un mois et j’ai choisi Shiro comme cadre de sécurité sous-jacent, malgré mes expériences antérieures avec Spring Security. J'avais besoin d'une solution capable de créer des exigences d'autorisation complexes. Le modèle de JSecurity est très simple, mais très puissant.

Ce qui m'a finalement convaincu, cependant, est le plug-in Nimble , qui est une couche d'interface utilisateur au-dessus. de Shiro. Il vous permet de gérer les utilisateurs, les rôles, les groupes, la création de compte en libre service, la messagerie électronique, etc., et s’intègre facilement à votre application. Ne pas avoir à écrire tout ce code a été une énorme victoire pour moi. Il permet également l'intégration avec OpenId, Facebook et d'autres.

Si Nimble travaillait pour SpringSecurity, je l’aurais probablement choisi, mais j’ai perçu cette victoire comme une énorme victoire.

J'ai utilisé les deux frameworks et j'aime la façon dont Shiro fonctionne par rapport à l'approche de Spring. Je ne sais pas pourquoi Spring Security est si populaire. Contrairement à Shiro, Spring Security se déchaîne dans l’application chaque fois que la configuration est requise. La sécurité n'est-elle pas une préoccupation transversale pour la plupart des applications? Si tel est le cas, ne s'agit-il pas d'un "code plus propre"? l'isoler à un seul endroit? Mes deux centimes.

Merci les gars pour vos réponses. J'ai en fait essayé la sécurité printanière sur une application Grails. Le plugin grails, il est assez facile à utiliser.

salutations

Josh

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top