te recomiendo echar un vistazo a Apache Shiro: http://shiro.apache.org/
que maneja la parte de seguridad de su solicitud y le da una gran flexibilidad en la forma de asegurar las cosas. Por ejemplo, puede agregar una anotación para proteger métodos individuales (por ejemplo: no puede ejecutar este método a menos que sea un administrador), páginas individuales (por ejemplo: no puede cargar esta página a menos que sea un administrador), y patrones de URL (debe ser administrador para acceder a cualquier elemento que contenga/admin/* en la url).
Señale qué tan complejo se puede hacer con la seguridad, Shiro es muy fácil de usar. Puede tomar un poco de tiempo entender algunos de los conceptos inicialmente, pero Shiro hace un muy buen trabajo al ocultar la mayor complejidad posible. Además, la lista de usuarios es muy receptiva y extremadamente útil.
Si usa Tapestry, puede consultar http://tynamo.org/tapestry-security+guide Hace que sea muy fácil instalar y ejecutar Shiro en una aplicación Tapestry y le da algunas etiquetas fáciles de usar para usar en sus plantillas.
Shiro no le dará integración con OpenID, OAuth o Facebook, pero es muy probable que necesite personalizar esa parte para su aplicación. Creo que se está trabajando para ayudar a integrar las funciones que ayudarán a habilitar estos tipos de autenticación en el marco.
Algunos de los frameworks que se basan en Shiro pueden ofrecer más de lo que está buscando. Por ejemplo, http://tynamo.org/tynamo-federatedaccounts+guide le dará más soporte para inicios de sesión federados en una aplicación de tapiz. Todavía está en las primeras etapas, pero podría estar funcionando si está usando Tapestry. Incluso si no hace exactamente lo que necesita, podría proporcionar algunos buenos ejemplos para mirar.
Usted también puede estar interesado en: http://static.springsource.org/spring-security/site/
Como nota al margen: Además de la seguridad es probable que haya un montón de otras tecnologías que se necesitan en un proyecto web típico. Es posible que necesite seguridad, persistencia, administración básica de usuarios, etc. Si crea muchas aplicaciones web, podría valer la pena crear un arquetipo maven que le permita obtener rápidamente una nueva aplicación básica para que pueda comenzar a codificar con toda la estructura inicial ya está en su lugar. AppFuse intenta hacer esto, pero apunta más a permitirte muchas opciones diferentes cuando se trata de marcos web. Si sabe qué tecnología va a utilizar, tener una aplicación de inicio personalizada para sus necesidades puede representar un gran ahorro de tiempo.