В настоящее время я использую Oracle ADF (которая представляет собой сквозную инфраструктуру Java EE) для создания моих веб-приложений и GlassFish 3.1 в качестве сервера приложений.
Последний поддерживает JAAS (декларативный внутри своей консоли администратора). Итак, я создал область безопасности и сопоставил их с ролями, объявленными в файле конфигурации, и использовал JAAS для реализации функций авторизации и проверки подлинности. Все отлично, до сих пор! На прошлых неделях я изучал безопасность Java EE.
Я обнаружил, что JAAS достаточно хорош, если вы придерживаетесь "базовой" безопасности. Более того, кажется, что JAAS (как часть Java Security Framework) предназначался только для Java SE (но поскольку Java EE построен на Java SE, некоторые из его модулей повторно используются, например, LoginMethod и Callbacks).
Затем я нашел много сообщений о JASPIC, выяснив, что он может быть реализован только программным способом (не проблема) и он еще не полностью поддерживается поставщиками серверов приложений и попытался сделать сравнение между ними. Даже если выпуск JASPIC1.1 разрешил некоторые проблемы, например:
Контейнер, однако, не полностью запоминает аутентификацию. SAM по-прежнему вызывается по каждому запросу, и SAM все еще должен повторная аутентификация
(это звучит не так хорошо для меня).
Затем я перешел к поиску интеграции некоторых систем безопасности. Наиболее известными являются "Spring" и "Сиро" . Конечно, каждый из них имеет свои собственные характеристики (может быть, первый более подходит для конкретной ситуации, а второй в другой). Что более важно для меня, тем больше:
- Аутентификация
- Разрешение
- Управление сеансом (и, возможно, шифрование)
Но везде я нашел противоречивые выводы. Результат: теперь я больше смущен, прежде чем искать.
Я просто новичок в таких вопросах, как безопасность, и, кроме того, я разработчик (у меня есть материал для реализации), поэтому очень сложно следить за каждой новой версией, и прогресс в области безопасности, похоже, продолжает развиваться каждый день галопом.
Я хотел бы получить некоторые факты, основанные на личном опыте, если это возможно. Каждый намек или предложение приветствуются. Я хочу быть уверенным, что я уверен, прежде чем выполнить шаг внедрения.