Кажется, это загруженный вопрос.
Платформа Spring Security - это первое, что приходит мне в голову, но, похоже, вы не склонны к использованию каких-либо платформ.
Если вы хотите самостоятельно управлять безопасностью, используя набор таблиц базы данных, то вам, вероятно, стоит потратить некоторое время на разработку правильной модели данных, которая учитывает пользователей и роли.
Возможно, вы захотите создать какой-нибудь фильтр сервлетов, который будет проверять, существует ли вошедший в систему пользователь для защищенных ресурсов. Если пользователь существует, фильтр будет перенаправлен на защищенный ресурс. Если пользователь не аутентифицирован, фильтр захватит целевую страницу и перенаправит пользователя на страницу аутентификации.
Некоторые другие вещи, которые следует учитывать:
а). Возможно, вам потребуется настроить ssl для любой страницы, которая передает учетные данные для входа.
б). Возможно, вы захотите посмотреть на какое-нибудь средство шифрования для хранения пароля пользователя.
с). Поскольку вы пишете приложение Java EE, вы, вероятно, захотите изучить принципы управления пользователями.
г). если вы развертываете в распределенной среде, как вы будете управлять сессией. Другими словами, должны ли сеансы быть липкими? или вы будете использовать какое-то пространство совместно используемой памяти для аутентифицированных пользователей (например, веб-сеансы, сохранение базы данных и т. д.)
е). Обратите особое внимание на инъекции sql; если вы используете подготовленные операторы jdbc, это не сильно беспокоит.
е). Если вы обрабатываете транзакции по кредитным картам, вам нужно убедиться, что вы соответствуете PCI
* * 1 022 г). Остерегайтесь злых ботов, старайтесь по возможности ограничивать активность ботов. Обычно это можно сделать с помощью какой-либо утилиты для ввода капчи
ч). Если вы используете какие-либо сторонние инструменты / фреймворки, будьте уверены, что вы всегда получаете последние версии, чтобы избежать уязвимостей
Вот некоторые ресурсы, которые приходят на ум:
http://static.springsource.org/spring-security/site/
http://docs.oracle.com/javase/1.4.2/docs/guide/security/jce/JCERefGuide.html
http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html
http://docs.oracle.com/javaee/5/tutorial/doc/bnbwk.html
Надеюсь, это поможет