Есть несколько вариантов. Что выбрать, полностью зависит от вас. Просто объективно взвесьте конкретные преимущества и недостатки, соответствующие вашей ситуации.
Просто объявите <security-constraint>
в web.xml
, который относится к области безопасности, которая настроена в servletcontainer. Вы можете для своего веб-приложения указать шаблоны URL, которые следует проверять для входа в систему и / или ролей, например /secured/*
, /app/*
, /private/*
и т. Д.
К сожалению, до появления Java EE 8 вам все еще нужно настраивать область безопасности в зависимости от контейнера сервлетов. Обычно это описывается в документации, относящейся к сервлету. В случае Tomcat 8 это ИНСТРУКЦИЯ по области. Например, область на основе базы данных, основанная на таблицах пользователей / ролей, описана в разделе JDBCRealm.
Начиная с Java EE 8, наконец, появится стандартный API, основанный на JSR-375 а>.
Преимущества:
- Относительно быстрая и простая установка и использование.
- Начиная с Java EE 8 наконец-то появился надежный и гибкий стандартный API.
Недостатки:
- До Java EE 8 конфигурация области зависела от контейнера. В Java EE 8 новая Спецификация безопасности JSR-375 должна решить эту проблему с помощью JASPIC.
- До Java EE 8 не было детализированного управления.
- До Java EE 8 он был очень спартанским; нет, помните меня, плохая обработка ошибок, никаких ограничений на основе разрешений.
Смотрите также:
Это обеспечивает гораздо более детальный контроль, но вам нужно будет написать весь код самостоятельно, и вы действительно должны знать / понимать, как следует реализовать такой фильтр, чтобы избежать потенциальных дыр в безопасности. На стороне JSF вы можете, например, просто поместить вошедшего в систему пользователя в качестве атрибута сеанса с помощью sessionMap.put("user", user)
и проверить в фильтре, если session.getAttribute("user")
не null
.
Преимущества:
- Мелкозернистый контроль.
- Полностью независимый от контейнера.
Недостатки:
- Новое изобретение колеса; новые функции требуют большого количества кода.
- Как начинающий, вы никогда не уверены, что ваш код на 100% надежен.
Смотрите также:
3. Адаптируйте стороннюю структуру.
Например, Apache Shiro, Spring Security и т. д. Это обычно предлагает гораздо более тонкие параметры конфигурации, чем стандартная проверка подлинности, управляемая контейнером, и вам не нужно писать для этого какой-либо код самостоятельно, за исключением страница входа в систему и, конечно же, некоторая конфигурация (XML).
Преимущества:
- Мелкозернистый контроль.
- Полностью независимый от контейнера.
- Никаких изобретений колеса; минимум собственного кода.
- Тщательно разработан и протестирован множеством пользователей, поэтому, скорее всего, он на 100% надежен.
Недостатки:
- Некоторая кривая обучения.
Смотрите также:
person
BalusC
schedule
01.04.2012