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