我应该如何保护使用Wicket,Spring和JPA编写的webapp?

时间:2010-02-23 00:08:04

标签: security spring tomcat jpa wicket

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

目前为止有以下选项:

  1. Spring Security(guide) - 看起来很完整,但我发现的每个指南都将它与Wicket结合起来仍然称之为Acegi Security,这让我认为它必须是旧的。

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

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

  4. 此外,看起来很多人建议混合第一和第二选项。不过,我无法分辨出最佳做法是什么。

2 个答案:

答案 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个包中的每一个都有它的优点,这是一个品味问题,也取决于应用程序的大小。