因此,我有一个使用Wicket 1.4框架的基于Web的应用程序,它使用Spring bean,Java Persistence API(JPA)和OpenSessionInView模式。我希望找到一个声明性的安全模型,但不需要大量的XML配置 - 我更喜欢注释。
目前为止有以下选项:
Spring Security(guide) - 看起来很完整,但我发现的每个指南都将它与Wicket结合起来仍然称之为Acegi Security,这让我认为它必须是旧的。
Wicket-Auth-Roles(guide 1和guide 2) - 大多数指南建议将其与Spring Security混合使用,我喜欢@Authorize的声明式样式(“ROLE1”,“ROLE2” “,等等)。我担心必须扩展AuthenticatedWebApplication,因为我已经扩展了org.apache.wicket.protocol.http.WebApplication,而Spring已经代理了org.apache.wicket.spring.SpringWebApplicationFactory。
< / LI>SWARM / WASP(guide) - 这看起来是最新的(虽然几年前主要的贡献者已经去世了),但我讨厌声明主体权限的所有JAAS样式的文本文件。我也不喜欢为用户可能想做的每件事创建一个Action类。安全型号对我来说也不是很明显。另外,没有Authn的例子。
此外,看起来很多人建议混合第一和第二选项。不过,我无法分辨出最佳做法是什么。
答案 0 :(得分:8)
我不知道你是否看到这个blog post所以我在这里作为参考添加它,我只是引用结尾:
更新2009/03/12:有兴趣获取Wicket的人士 应用程序也应该意识到这一点 有另一种选择 Wicket-Security,叫做 检票AUTH-角色。 This thread 会给你一个很好的概述 两个框架的状态。 将wicket-auth-roles与...集成 Spring Security涵盖here 一个引人注目的特征 wicket-auth-roles是能力 使用Java配置授权 注释。我发现它更多 优雅而不是集中 配置文件。有一个 例如here。
基于上面的信息和你提供的信息,并且因为我也喜欢注释,我会选择使用Spring Security的Wicket-Auth-Roles(即guide 2)。扩展AuthenticatedWebApplication
应该不是问题,因为此类扩展WebApplication
。使用SpringWebApplicationFactory
将应用程序对象从spring上下文中拉出来也应该正常工作。
如果您的担忧真的很大,那么通过测试IMO确认这将非常容易和快速:)
答案 1 :(得分:2)
我们多年来一直在使用Wicket-security,我们将它与jaas文件和注释一起使用。定义jaas文件非常麻烦,维护它们几乎是不可能的......
使用注释,必须为每个页面定义操作和主体。这是耗时的,但它允许您让用户动态定义角色和授权。也可以使用WicketTester测试所有主体。
3个包中的每一个都有它的优点,这是一个品味问题,也取决于应用程序的大小。