Spring Security .Хотя он обозначен как Spring, , вы можете найти его полезным для веб-приложений ;обратите внимание, что вам не нужно писать приложение Spring для использования Spring Security.
Если вы хотите придерживаться JAAS, я бы предложил использовать один из модулей входа в контейнер, просто для начала, прежде чем выпопытаться написать свой собственный модуль входа.Имейте в виду, что вы можете написать один, если поставляемые в комплекте модули не соответствуют вашим требованиям.И есть хорошая книга по JAAS , которая поможет вам понять ее подробно.
Более того, взгляните на Спецификация сервлета 3.0 , чтобы увидеть, как аннотации могутбыть использованным, объявите роли (@DeclareRoles, которые пришли в спецификации 2.5 сервлета) в самом сервлете, прежде чем определять, какие роли имеют доступ к какому методу HTTP (используя @RolesAllowed).Вы также можете использовать аннотации, такие как @DenyAll и @PermitAll, чтобы разрешить или запретить доступ всем пользователям.@TransportProtected обеспечит доступ к методу HTTP через HTTPS.Все, что нужно сделать, - это сопоставить эти роли в исходном коде с реальными ролями в области JAAS;это часто делается с использованием файла дескриптора, специфичного для контейнера.
ADDENDUM
Поскольку вы используете JSP, а не Facelets или какую-либо другую технологию для уровня представления, вас может заинтересоватьв тегах JSP, предлагаемых Spring Security .Гораздо понятнее, что поддержание всех метаданных авторизации в огромном файле web.xml.
Что касается JPA, то основной доступ к ним обычно обеспечивается сервлетами или EJB-компонентами.Конечно, вы можете встроить более программную защиту в зависимости от ваших потребностей - использование прослушивателей сущностей поможет в этом процессе, поскольку вы сможете перехватывать операции загрузки, обновления и сохранения (если вы именно этот, но по большей части сборкабезопасности перед выполнением вашей бизнес-логики обычно достаточно)EE.