19

因此,我有一个使用 Wicket 1.4 框架的基于 Web 的应用程序,它使用 Spring beans、Java Persistence API (JPA) 和 OpenSessionInView 模式。我希望找到一个声明性的安全模型,但不需要大量的 XML 配置——我更喜欢注释。

以下是目前的选项:

  1. Spring Security (指南) - 看起来很完整,但我发现的每个将它与 Wicket 结合的指南仍​​然称它为 Acegi Security,这让我觉得它一定是旧的。

  2. Wicket-Auth-Roles(指南 1指南 2) - 大多数指南建议将其与 Spring Security 混合使用,我喜欢 @Authorize("ROLE1","ROLE2",etc) 的声明式风格。我担心必须扩展 AuthenticatedWebApplication,因为我已经在扩展 org.apache.wicket.protocol.http.WebApplication,而 Spring 已经在 org.apache.wicket.spring.SpringWebApplicationFactory 后面进行代理。

  3. SWARM / WASP(指南)——这看起来是最新的(虽然主要贡献者几年前去世了),但我讨厌所有声明主体权限的 JAAS 样式的文本文件。我也不喜欢为用户可能想做的每一件事创建一个 Action 类的想法。安全模型对我来说也不是很明显。另外,没有 Authn 示例。

此外,看起来很多人建议混合使用第一个和第二个选项。不过,我根本不知道最佳实践是什么。

4

2 回答 2

8

我不知道你是否看过这篇文,所以我在这里添加它作为参考,我将引用结尾:

2009 年 3 月 12 日更新:那些对保护 Wicket 应用程序感兴趣的人还应该知道,还有一个 Wicket-Security 的替代方案,称为 wicket-auth-roles。该线程 将为您提供两个框架的状态的一个很好的概述。此处介绍了将 wicket-auth-roles 与 Spring Security 集成。
wicket-auth-roles 的一个引人注目的特性是能够使用 Java 注释配置授权。我发现它比集中式配置文件更优雅。这里有一个例子。

根据上面的信息和您提供的信息,并且因为我也更喜欢注释,我会选择带有 Spring Security 的 Wicket-Auth-Roles(即指南 2)。扩展AuthenticatedWebApplication应该不是问题,因为这个类 extends WebApplication。并且使用将您的应用程序对象从弹簧上下文中拉出SpringWebApplicationFactory也应该可以工作。

如果您的担忧真的很大,那么通过测试 IMO 来确认这将非常容易和快速:)

于 2010-02-23T00:52:09.697 回答
2

多年来,我们一直在使用 Wicket-security,并将它与 jaas 文件和注释一起使用。定义 jaas 文件非常麻烦,维护它们几乎是不可能的......

使用注释必须为每个页面定义操作和主体。这很耗时,但它确实允许您让用户动态定义角色和授权。也可以使用 WicketTester 测试所有主体。

这 3 个包中的每一个都有它的(缺点)优点,这是一个口味问题,它还取决于应用程序的大小。

于 2010-04-28T09:48:24.930 回答