Application Web – Cadre d’authentification / connexion

C’est 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. Imaginons que je prévoie de créer une application Web et que certaines des exigences fonctionnelles incluent (hormis les exigences de sécurité habituelles), – Nécessité de demander aux utilisateurs de créer un nouveau profil de compte – Authentification de l’utilisateur à l’aide de l’authentification native de l’application / Facebook ou connexion Google ou Yahoo ou OpenId – Autoriser la récupération de mot de passe perdu – Besoins en matière de gestion de session

Existe-t-il des frameworks prêts à l’emploi (Drupal, Liferay, Tapestry avec Tynamo, Wicket ??) que je peux utiliser pour emballer mon application, qui peut consister en un lot de fichiers JSP ou HTML avec JS? Je sais que je pose une question très simple et peut-être naïve. Mais c’est un sujet que tous les gourous du développement Web suivront. Toute aide, conseil et pointeur très apprécié.

    Je recommanderais de jeter un coup d’oeil à Apache Shiro: http://shiro.apache.org/

    Il gère la partie sécurité de votre application et vous offre une grande flexibilité pour sécuriser les choses. Par exemple, vous pouvez append une annotation pour sécuriser des méthodes individuelles (par exemple: vous ne pouvez exécuter cette méthode que si vous êtes un administrateur), des pages individuelles (par exemple: vous ne pouvez pas charger cette page sans être un administrateur), et les modèles d’URL (vous devez être administrateur pour accéder à tout élément contenant / admin / * dans l’URL).

    Dire à quel point la sécurité peut être complexe, Shiro est très simple à utiliser. Cela peut prendre un peu de temps pour comprendre certains concepts, mais Shiro fait un très bon travail en cachant le plus de complexité possible. La liste des utilisateurs est également très réactive et extrêmement utile.

    Si vous utilisez Tapestry, vous pouvez consulter http://tynamo.org/tapestry-security+guide. Il est très facile d’installer Shiro dans une application Tapestry et vous donne quelques balises faciles à utiliser à utiliser dans vos modèles. .

    Shiro ne vous donnera pas une intégration immédiate d’Openuth, d’OAuth ou de Facebook, mais il y a de fortes chances que vous deviez personnaliser cette partie pour votre application. Je crois qu’il y a du travail en cours pour aider à intégrer des fonctions qui aideront à activer ces types d’authentification dans la structure.

    Certains des frameworks basés sur Shiro peuvent offrir davantage de ce que vous recherchez. Par exemple, http://tynamo.org/tynamo-federatedaccounts+guide vous apportera plus de soutien pour les connexions fédérées dans une application de tapisserie. Il est encore à ses débuts, mais pourrait être en train de regarder si vous utilisez Tapestry. Même s’il ne fait pas exactement ce dont vous avez besoin, il pourrait vous fournir de bons exemples.

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

    En plus de la sécurité, il y a probablement un tas d’autres technologies dont vous aurez besoin dans un projet Web typique. Vous aurez peut-être besoin de sécurité, de persistance, d’une gestion utilisateur de base, etc. Si vous créez de nombreuses applications Web, il peut être intéressant de créer un archétype maven qui vous permet de mettre rapidement en service une nouvelle application de base afin de pouvoir commencer à coder avec toute la structure initiale déjà en place. AppFuse tente de le faire, mais il vise plus à vous offrir de nombreux choix en matière de frameworks Web. Si vous savez quelle technologie vous allez utiliser, avoir une application de démarrage adaptée à vos besoins peut vous faire gagner un temps considérable.

    Je regarderais Apache Shiro ou Spring Security.