Spring Security 2 新特性

工程 | Ben Alex | 2007年12月6日 | ...

我今天浏览博客圈时,看到一篇极其简短的博客。几乎全文引用如下:“每次使用 Acegi 时,都会有一只小精灵死去。可悲的是,目前还没有更好的替代方案……”

通过我们的社区论坛开发者列表JIRA用户大会BOF培训支持咨询团队博客,我们收到了大量的社区反馈。毫无疑问,许多人都希望改进 Spring Security(以前称为 Acegi)的配置格式,我们也投入了大量时间来实现这一目标。

由于我将在下周的Spring Experience大会上发表演讲,Spring Security 2.0.0 M1 的特性是配置大大简化。现在,您可以通过以下三个步骤将 Spring Security 添加到您的应用程序中:

  1. 将所需的 JAR 文件添加到您的类路径中。Maven 2 用户只需在其 POM 中指定一个依赖项,因为我们使用 Maven 进行构建。
  2. 将单个过滤器和相应的映射添加到您的 web.xml。
  3. 向您的 Spring 容器配置文件添加一些元素。
向 web.xml 添加过滤器需要以下代码:

<filter>
    <filter-name>_filterChainProxy</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>_filterChainProxy</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

第三步也是最后一步需要您将新的 Spring Security 2 命名空间添加到现有的配置文件中,或者创建一个包含您的安全配置的新 XML 文件。对于许多用户来说,该文件将非常短,类似于:



<beans:beans namespace declarations>
    <annotation-driven />

    <http auto-config="true">
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_REMEMBER" />
    </http>

    <repository>
        <user-service hash="md5:hex">
            <user name="rod" password="a564de63c2d0da68cf47586ee05984d7" authorities="ROLE_SUPERVISOR,ROLE_USER" />
        </user-service>
    </repository>
</beans:beans>

上述配置为您的 Web 应用程序可靠地提供了以下功能:

  • 基于表单的登录
  • 注销处理程序
  • 自动生成登录页面
  • BASIC 身份验证支持(非常适合远程协议和 Web 服务)
  • 通过 Cookie 实现“记住我”功能
  • 匿名身份验证(因此所有匿名用户都有用户名和角色)
  • 与您的数据库支持的用户存储库集成(您也可以使用 在 XML 中指定它们)
  • 自动执行您 Spring 托管对象上的 @Secured 注解
  • Servlet API 集成(即 HttpServletRequest.isUserInRole(String) 和 HttpServletRequest.getPrincipal())
  • 使用应用程序的任何部分都需要登录
因此, 语句为标准 Web 应用程序提供了它们在单个元素中所需的大部分功能。当然,您可以微调各个设置,例如指定不同的领域名称()、自定义您的登录页面详细信息()或切换到更高级的“记住我”令牌存储库()。

包括命名空间声明形式,上述配置文件大约运行 16 行。旧的配置样式需要大约 120 行 XML 代码才能实现可比的功能。

虽然配置改进很大,但 Spring Security 2.0.0 M1 中还有其他功能!例如,您现在可以选择将“记住我”令牌存储在数据库中,这可以增强安全性。我们还支持分层角色,这是一种增强型授权别名策略。此外,还有期待已久的用户管理 API、NTLM 支持、portlet 集成等等。

如果您想了解更多关于 Spring Security 2 的信息,请来Spring Experience看看它的实际应用。有三个会议专门介绍 Spring Security 2,包括入门新特性和改进以及如何使用新的portlet 安全集成。对于那些不能参加会议的人,您将能够在下周晚些时候下载第一个里程碑版本。

希望这些改进能够拯救一些小精灵。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加快您的进步。

了解更多

获得支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部