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