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.