Итак, у меня есть веб-приложение, которое использует платформу Wicket 1.4 и использует бины Spring, Java Persistence API (JPA) и шаблон OpenSessionInView. Я надеюсь найти модель безопасности, которая была бы декларативной, но не требовала бы настройки XML - я бы предпочел аннотации.
Вот варианты на данный момент:
Spring Security ( guide ) - выглядит завершенным, но каждое найденное мной руководство, которое объединяет его с Wicket, все еще называет его Acegi Security, что заставляет меня думать, что оно должно быть старым.
Wicket-Auth-Roles ( guide 1 и guide 2 ) - Большинство руководств рекомендуют смешивать это с Spring Security, и мне нравится декларативный стиль @Authorize ( "Role1", "роль2", и т.д.). Меня беспокоит необходимость расширения AuthenticatedWebApplication, поскольку я уже расширяю org.apache.wicket.protocol.http.WebApplication, а Spring уже проксирует это за org.apache.wicket.spring.SpringWebApplicationFactory.
SWARM / WASP ( guide ) - Это выглядит самым новым (хотя основной вкладчик скончался много лет назад), но я ненавижу все текстовые файлы в стиле JAAS, которые объявляют разрешения для принципалов , Мне также не нравится идея создания класса Action для каждой вещи, которую может захотеть сделать пользователь. Безопасные модели также не сразу очевидны для меня. Кроме того, нет примера Authn.
Кроме того, похоже, что многие рекомендуют смешивать первый и второй варианты. Хотя я не могу сказать, что такое лучшая практика.