因此,我有一个使用 Wicket 1.4 框架的基于 Web 的应用程序,它使用 Spring beans、Java Persistence API (JPA) 和 OpenSessionInView 模式。我希望找到一个声明性的安全模型,但不需要大量的 XML 配置——我更喜欢注释。
以下是目前的选项:
Spring Security (指南) - 看起来很完整,但我发现的每个将它与 Wicket 结合的指南仍然称它为 Acegi Security,这让我觉得它一定是旧的。
Wicket-Auth-Roles(指南 1和指南 2) - 大多数指南建议将其与 Spring Security 混合使用,我喜欢 @Authorize("ROLE1","ROLE2",etc) 的声明式风格。我担心必须扩展 AuthenticatedWebApplication,因为我已经在扩展 org.apache.wicket.protocol.http.WebApplication,而 Spring 已经在 org.apache.wicket.spring.SpringWebApplicationFactory 后面进行代理。
SWARM / WASP(指南)——这看起来是最新的(虽然主要贡献者几年前去世了),但我讨厌所有声明主体权限的 JAAS 样式的文本文件。我也不喜欢为用户可能想做的每一件事创建一个 Action 类的想法。安全模型对我来说也不是很明显。另外,没有 Authn 示例。
此外,看起来很多人建议混合使用第一个和第二个选项。不过,我根本不知道最佳实践是什么。