2011-01-16 1 views
25

Il s'agit d'une question très simple, probablement la plus fréquemment posée et fréquemment développée dans le cadre d'une application Web. Supposons que je prévois de créer une application Web et que certaines exigences fonctionnelles soient incluses (hormis les exigences de sécurité habituelles), - Nécessité d'avoir des utilisateurs qui s'inscrivent pour un nouveau profil de compte - Authentifier l'utilisateur en utilisant l'authentification de l'application native/Facebook ou Google ou Yahoo ou OpenId connexion - Autoriser la perte de récupération de mot de passe - la gestion des sessions a besoinApplication Web - Cadre d'authentification/de connexion

est-il un hors des cadres de la boîte (Drupal, Liferay, tapisserie avec Tynamo, Wicket ??) que je peux utiliser pour envelopper mon application qui peut être un tas de JSP ou de HTML avec JS? Je sais que je pose une question très simple et peut-être naïve. Mais c'est un sujet que chaque gourou du développeur Web va traverser. Toute aide, conseil et conseils très appréciés.

Répondre

27

Je vous recommande de jeter un oeil à Apache Shiro: http://shiro.apache.org/

Il gère la partie de la sécurité de votre demande et vous donne beaucoup de flexibilité dans la façon de sécuriser les choses. Par exemple, vous pouvez ajouter une annotation pour sécuriser des méthodes individuelles (par exemple: vous ne pouvez pas exécuter cette méthode sauf si vous êtes administrateur), des pages individuelles (par exemple: vous ne pouvez charger cette page que si vous êtes administrateur), et les modèles d'URL (vous devez être administrateur pour accéder à tout ce qui contient/admin/* dans l'url).

Donner à quel point il peut être complexe à la sécurité, Shiro est très simple à utiliser. Cela peut prendre un peu de temps pour comprendre certains concepts au départ, mais Shiro réussit très bien à cacher autant de complexité que possible. De plus, la liste des utilisateurs est très réactive et extrêmement utile. Si vous utilisez Tapestry, vous pouvez regarder http://tynamo.org/tapestry-security+guide Il est très facile d'obtenir Shiro opérationnel dans une application Tapestry et vous donne quelques balises faciles à utiliser à utiliser dans vos modèles.

Shiro ne va pas vous donner l'intégration OpenID, OAuth ou Facebook, mais il y a de fortes chances que vous ayez besoin de personnaliser cette partie pour votre application. Je crois qu'il y a du travail en cours pour aider à intégrer les fonctions qui permettront d'activer ces types d'authentification dans le framework. Certains des frameworks qui s'appuient sur Shiro peuvent offrir plus de ce que vous recherchez. Par exemple, http://tynamo.org/tynamo-federatedaccounts+guide vous donnera plus de soutien pour les connexions fédérées dans une application de tapisserie. Il est encore dans les premiers stades, mais pourrait travailler en regardant si vous utilisez Tapestry. Même s'il ne fait pas exactement ce dont vous avez besoin, il pourrait fournir de bons exemples.

Vous pourriez aussi être intéressé par: http://static.springsource.org/spring-security/site/

Comme une note de côté: En plus de sécurité, il y a probablement un tas d'autres technologies dont vous aurez besoin dans un projet web typique. Vous pouvez avoir besoin de sécurité, de persistance, de gestion des utilisateurs de base, etc. Si vous créez de nombreuses applications Web, il peut être utile de créer un archétype Maven qui vous permet de lancer rapidement une nouvelle application de base. déjà en place. AppFuse essaie de le faire, mais il vise plus à vous permettre de nombreux choix différents en ce qui concerne les frameworks web. Si vous savez quelle technologie vous allez utiliser, avoir une application de démarrage qui est personnalisée pour vos besoins peut être un énorme gain de temps.

0

Je regarderais Apache Shiro ou Spring Security.

Questions connexes