Я рекомендую взглянуть на Apache Shiro: http://shiro.apache.org/
Он обрабатывает часть безопасности вашего приложения и дает вам большую гибкость в том, как обеспечить вещи. Например, вы можете добавить аннотацию для защиты отдельных методов (например: вы не можете запустить этот метод, если только вы не являетесь администратором), отдельные страницы (например: вы не можете загрузить эту страницу, если вы не являетесь администратором), и шаблоны URL (вы должны быть администратором для доступа к чему-либо, содержащему/admin/* в URL-адресе).
Дайте, насколько сложно это сделать для обеспечения безопасности, Сиро очень прост в использовании. Это может занять немного времени, чтобы сначала задуматься над некоторыми из концепций, но Сиро очень хорошо скрывает как можно большую сложность. Также список пользователей очень отзывчивый и чрезвычайно полезный.
Если вы используете Гобелен, вы можете посмотреть на http://tynamo.org/tapestry-security+guide. Очень легко заставить Широ работать и работать в приложении Гобелена и дает вам несколько простых тегов для использования в ваших шаблонах.
Shiro не собирается предоставлять вам OpenID, OAuth или интеграцию с Facebook из коробки, но шансы высоки, вам нужно будет настроить эту часть для вашего приложения. Я считаю, что есть некоторая работа, которая поможет интегрировать функции, которые помогут включить эти типы аутентификации в структуру.
Некоторые из фреймворков, которые строятся на Сиро, могут предложить больше того, что вы ищете. Например, http://tynamo.org/tynamo-federatedaccounts+guide даст вам больше поддержки для федеративных подключений в приложении для гобеленов. Он все еще находится на ранней стадии, но может работать, глядя, если вы используете Гобелен. Даже если это не делает то, что вам нужно, это может привести к хорошим примерам.
Вы также можете быть заинтересованы в: http://static.springsource.org/spring-security/site/
В качестве примечания: В дополнение к безопасности есть, вероятно, куча других технологий, которые вы будете нуждаться в типичном веб-проекта. Вам может потребоваться безопасность, постоянство, базовое управление пользователями и т. Д. Если вы создадите много веб-приложений, возможно, стоит создать архетип maven, который позволит вам быстро получить новое базовое приложение и запустить его, чтобы вы могли начать кодирование со всей исходной структурой уже на месте. AppFuse пытается это сделать, но он больше нацелен на то, чтобы позволить вам много разных вариантов, когда дело доходит до веб-фреймворков. Если вы знаете, какую технологию вы собираетесь использовать, наличие загрузочного приложения, настроенного для ваших нужд, может быть огромным временем ожидания.