Spring Security 3.2 M1 亮点,Servlet 3 API 支持

工程 | Rob Winch | 2012 年 12 月 17 日 | ...

上周我宣布发布 Spring Security 3.2 M1,其中包含改进的 Servlet 3 支持。在这篇文章中,我将介绍 3.2 M1 版本中的一些更令人兴奋的功能。具体来说,我们将看看以下新的 Spring Security 功能

并发支持

您可能会问“并发支持在以 Servlet 3 为中心的版本中扮演什么角色?”原因是并发支持为本版本中的所有其他功能提供了基础。虽然并发支持由 Servlet 3 集成使用,但它也可以作为构建块来支持任何应用程序中的并发和 Spring Security。现在让我们看看 Spring Security 的并发支持。

DelegatingSecurityContextRunnable

Spring Security 并发支持中最基本的基础构建块之一是DelegatingSecurityContextRunnable。它包装一个委托的Runnable,以便使用指定的SecurityContext为委托初始化SecurityContextHolder。然后,它调用委托的Runnable,并确保之后清除SecurityContextHolderDelegatingSecurityContextRunnable看起来像这样

public void run() {
  try {
    SecurityContextHolder.setContext(securityContext);
    delegate.run();
  } finally {
    SecurityContextHolder.clearContext();
  }
}

虽然非常简单,但它使在Thread之间传输SecurityContext变得无缝。这很重要,因为在大多数情况下,SecurityContextHolder基于每个Thread。例如,您可能已使用 Spring Security 的<global-method-security> 支持来保护您的其中一项服务。您现在可以轻松地将当前ThreadSecurityContext传输到调用受保护服务的Thread。下面是一个关于如何执行此操作的示例


Runnable originalRunnable = new Runnable() {
  public void run() {
    // invoke secured service
  }
};

SecurityContext context = SecurityContextHolder.getContext();
DelegatingSecurityContextRunnable wrappedRunnable =
    new DelegatingSecurityContextRunnable(originalRunnable, context);

new Thread(wrappedRunnable).start();

上面的代码执行以下步骤

  • 创建一个将调用我们受保护服务的Runnable。请注意,它不知道 Spring Security
  • SecurityContextHolder获取我们希望使用的SecurityContext,并初始化DelegatingSecurityContextRunnable
  • 使用DelegatingSecurityContextRunnable创建一个Thread
  • 启动我们创建的Thread

由于使用SecurityContextHolder中的SecurityContext创建DelegatingSecurityContextRunnable非常常见,因此有一个快捷构造函数。以下代码与上面的代码相同


Runnable originalRunnable = new Runnable() {
  public void run() {
    // invoke secured…

Spring Framework 3.2 正式发布

工程 | Juergen Hoeller | 2012 年 12 月 13 日 | ...

亲爱的 Spring 社区:

在 Spring Framework 3.1 发布整整一年后,我很高兴地宣布 Spring Framework 3.2 现已正式发布!

我们建议从所有以前的 Spring 版本升级,特别是从 Spring Framework 3.1.x 升级,因为这是它的直接后续版本。

如前所述,Spring Framework 3.2 中的关键功能包括

  • 改进的 Java SE 7 支持,在框架内以及通过升级到 CGLIB 3.0、ASM 4.0(我们现在都内联了)和 AspectJ 1.7 实现
  • 框架内的并发改进,尽可能避免使用同步 - 特别是对于作用域/原型 bean
  • 允许@Autowired 和 @Value 用作元注释,例如,结合特定限定符构建自定义注入注释
  • 支持@Configuration 类中的自定义 @Bean 定义注释,例如,结合特定限定符、@Lazy、@Primary 等
  • Servlet 3.0 上的异步 MVC 处理……

本周 Spring - 2012 年 12 月 11 日

工程 | Josh Long | 2012 年 12 月 11 日 | ...

欢迎来到另一期《本周 Spring》!我们完成了 SpringOne 中国,周末我们将在班加罗尔和海得拉巴举行的SpringOne 印度的两个活动中的第一个活动。这些展会非常棒!特别是,我们享受了美食、景点和大量涌现的精彩社区!

一位与会者在我发表关于 Spring on Cloud Foundry 的演讲时拍摄了我 Mark Pollack 博士、我本人、Gary Russell 和 Chris Richardson 在北京的一家餐厅
我在班加罗尔发表了一场演讲,人们涌上舞台提问和打招呼。我请最后一批人与我合影。 从左到右:Gary Russel、Josh Long、Jennifer Hickey、Jeremy Grelle、Oliver Gierke、Chris Richardson - 整个 SpringOne 印度阵容

 

    <LI> Roy Clarkson has announced <a href = "http://www.springsource.org/spring-android/news/1.0.1-released">Spring for Android 1.0</a>, which     adds support for Jackson 2.x in <code>RestTemplate</code> through the new <code>MappingJackson2HttpMessageConverter</code>. It also addresses several bugs and compatibility issues with <code>RestTemplate</code> and Android Jelly Bean.</LI>
    <LI>The <a href="http://www.tomcatexpert.com">TomcatExpert.com portal</a> has a nice post on Spring Insight Developer to analyze code, <a href="http://www.springsource.org/node/3761">install it with Tomcat, and…

    推出 Spring Scala

    工程 | Arjen Poutsma | 2012 年 12 月 10 日 | ...

    去年 10 月,在SpringOne2GX上,我向世界介绍了 Spring Scala 项目。从那时起,我也在Devoxx上介绍了这个项目。在这篇博文中,我想详细介绍一下这个项目以及如何在 Scala 项目中使用它。

    为什么选择 Spring Scala?

    Spring Scala 项目的目标很简单,就是使在 Scala 中使用 Spring 框架更容易。我们相信有很多 Spring 用户想要尝试 Scala,但不想放弃他们使用 Spring 的经验。此项目是为这些人准备的。

    显然,您今天可以在没有 Spring Scala 的情况下在 Scala 中使用(Java)Spring Framework。但这样做在某些地方会很笨拙。就像任何编程语言一样,Scala 有自己不同的做事方式,在 Scala 中使用像 Spring 这样的纯 Java 框架会让人感觉“太 Java 化了”。Spring Scala 试图修复……

    IOC + Javascript 在 SpringOne 2GX 上

    工程 | John Hann | 2012 年 12 月 06 日 | ...

    作者:Brian CavalierJohn Hann

    我们在SpringOne 2GX上发表了关于 IOC + Javascript 的演讲。总的来说,前端 Web 应用程序架构似乎是本次大会的一个热门话题,我们的演讲似乎也受到了热烈欢迎。以下是演讲的视频幻灯片

    我们还将开始一个关于现代 Javascript Web 应用程序架构模式的博客系列,其中包含来自 SpringSource 新前端架构团队 S2JS 成员的文章。这些文章将扩展我们在演讲中以及Scott AndrewsJeremy Grelle在他们演讲中提出的概念。

    该系列的第一篇文章将于下周发布。在此之前,我们希望您能欣赏视频幻灯片。如果您想提前开始,可以浏览演示应用程序的源代码……

    本周 Spring - 2012 年 12 月 4 日

    工程 | Josh Long | 2012 年 12 月 05 日 | ...

    ,伙计们!已经是 12 月 4 日了!玩得开心的时候,时间过得真快!

    Welcome back to another installment of <EM>This Week in Spring</EM>. This week, I'm in Beijing for <a href="http://springonechina.cloudfoundry.com">SpringOne China</a> and, next week, I'm off to India for <A href="http://springoneindia.cloudfoundry.com/">SpringOne India</a>. If you're in Beijing, Bangalore or Hyderabad, I'd love to see you at these events!
    

    好吧,让我们开始本周的总结吧!

    1. Mark Fisher 本周率先发力,送上了一份非常棒的礼物:Spring Integration 2.2.0.GA 已发布!新版本在发布公告中提到的各种新功能的博客中进行了很好的描述,因此请务必查看!
      	</LI>
      <LI>Martin Lippert's announced that the <a href="http://www.springsource.org/node/3757">Spring Tool Suite and Groovy Tool Suite 3.2.0.M1 have been released!</a> </li>
      
       <LI> Tobias…

    本周 Spring - 2012 年 11 月 27 日

    工程 | Josh Long | 2012 年 11 月 28 日 | ...

    欢迎回到另一期《本周 Spring》!如果您在美国,我希望您在度过了一个非常愉快的长周末后休息得很好,因为我们本周有很多内容要介绍!

    希望您觉得此总结有用。如果您想查看前几周的总结,我们最近为博客档案创建了一个《本周 Spring》标签。

    无论如何,我们本周有很多内容要介绍,所以让我们开始吧!

    1. Chris Beams 宣布已发布Spring Framework 3.2 RC2,主要包括 bug 修复和重构,因为该项目即将正式发布。
    2. Andy Wilkinson 宣布发布并提供Spring 迁移分析器,这是一个命令行实用程序,用于分析企业 Java 应用程序并生成描述应用程序以及如何将其迁移到 Spring 的报告。输入 EAR 文件,获取迁移工作量报告。它在里程碑版本中支持 WebLogic、WebSphere、Java EE 和 JBoss,但我们正在寻求社区支持以使其在正式发布时变得更好!
    3. 在 12 月 13 日观看 Spring Data 网络研讨会系列的最新内容 - 使用 Spring Data、Hadoop、Batch 和 Integration 进行数据访问和处理。我们还将在 12 月 6 日举办一场关于 Spring Data Gemfire 的网络研讨会:数据复兴:使用 VMware vFabric GemFire 7.0 和 Spring 进行内存处理
    4. 如果您错过了 Spring Data 网络研讨会系列中的其他网络研讨会,请查看 SpringSource Dev Youtube 频道,了解最近发布的重播:Spring 数据访问 - 最大程度地利用 JPA、JDBC 和 REST介绍适用于 Apache Hadoop 的 Spring
    5. Gary Russell 宣布Spring Integration 2.2.0.RC3 已发布
    6. Spring Social 1.1.0 已发布。新版本包括更轻松的 XML 和 Java 配置、更严格地遵守最新的 OAuth 2 规范草案(包括 HTTP Basic 客户端身份验证以及对资源所有者凭据授予和客户端凭据授予的支持),以及对 Facebook 和 Twitter API 绑定的更新。
    7. Jens Schauder 发表了一篇关于根据需要使用singleton作用域创建新的 Spring bean的精彩文章。
    8. 《Java 如何编程》博客对以下内容进行了很好的总结
        <a href="http://www.hubberspot.com/2012/10/how-to-use-component-annotation-for.html">How to use <CODE>@Component</CODE> 
        annotation to automatically configure Spring beans</a>.
      
    9. 这是一篇关于如何使用 Spring 和@Autowired(或备选的@Inject)实现责任链模式的精彩文章。
    10. Viral Patel 再次发力,这次发表了一篇关于Spring 3 MVC 拦截器的文章。
    11. Mkyong 博客发布了另一篇关于使用 Springthread作用域的 Spring 和 Java 线程示例的精彩文章。
    12. DZone 发布了一篇关于使用 Spring 和 JUnit 4 支持轻松进行集成测试的精彩文章。
    13. 我最近写了一个关于Spring初学者如何开始使用SpringSource Tool Suite和Spring的教程。

    介绍Spring迁移分析器

    工程 | Andy Wilkinson | 2012年11月27日 | ...

    我很高兴地宣布,我们发布了Spring迁移分析器 (SMA)的第一个里程碑版本,这是一个命令行工具,可以分析企业Java应用程序并生成一份报告,描述应用程序以及如何将其迁移到Spring。

    为什么要将应用程序迁移到Spring?

    我们看到人们选择使用Spring的两个主要原因。首先,Spring提供了最广泛的部署选项,包括云和PaaS,允许您将应用程序部署到更轻量级的运行时环境,从而降低运营成本。其次,正如Adrian最近解释的那样,Spring提供了对一系列处于企业Java前沿的技术的访问。

    在考虑将现有应用程序迁移到Spring时,通常是部署灵活性促使了迁移,因为它可以显著降低应用程序的运营成本。

    使用SMA分析应用程序

    要开始使用SMA,请下载分发版。下载完成后,解压缩它。
    unzip spring-migration-analyzer-1.0.0.M1-dist.zip
    

    在设置了JAVA_HOME之后,您可以运行migration-analysis脚本以…

    Scripted中的依赖项分析

    工程 | Kris De Volder | 2012年11月20日 | ...

    来自VMWare的JavaScript编辑器Scripted上个月在这个博客上宣布。在本文中,我们将深入了解Scripted的依赖项分析引擎。但在深入了解细节之前,让我们先说明为什么我们需要它。

    主要动机:跨文件内容辅助

    为了提供出色的JavaScript编辑体验,Scripted需要提供关于您当前编辑器上下文中可以使用哪些函数、方法或标识符的准确建议。

    [caption id="attachment_12178" align="aligncenter" width="533" caption="跨文件内容辅助"][/caption]

    两个组件协同工作以实现此目标

    • 一个细粒度的类型推断分析引擎
    • 一个粗粒度的依赖项分析引擎
    推断引擎解析您的代码并遍历每个声明、语句和表达式。这使它能够确定在给定上下文中哪些标识符有效,并对可能存储在这些变量中的内容进行良好的猜测。然后,此信息用于提供内容辅助建议。

    如果您只想将所有代码放入一个大文件中,那么仅使用高质量的推断器就足以提供一些非常好的内容辅助。实际上,项目将被划分为…

    本周Spring - 2012年11月20日

    工程 | Josh Long | 2012年11月20日 | ...

    哇!伙计们,你们能相信我们再次面临着年底吗?时间过得真快!在美国,这是感恩节的一周,这是一个我们应该抽出时间反思我们感激之事的节日。我(我相信我代表团队说我们都)永远感激你们,围绕Spring、RabbitMQ和Cloud Foundry的充满活力和参与度的社区,这使得每周将这份综述整理在一起成为一种乐趣。

    有了这些,让我们继续关注新闻

    1. Thomas Risberg宣布Cloud Foundry Maven插件1.0.0.M4现已可用。
      </Li>
       <LI>Did you miss out at <A href="http://springone2gx.com/conference/washington/2012/10/home">SpringOneOne2GX 2012  in Washington D.C.</a>?  Don't fret. We'll release 2 sessions every week on <a href="http://www.springsource.org/SpringOne2012Recordings">springsource.org</a>. We've already released Day 1 and 2 Keynotes. Available now:  a talk from Rossen Stoyanchev on "What's New in Spring Mvc 3.2" and a talk from Roy Clarkson and Craig Walls on "Extending Spring Mvc With Spring Mobile and Javascript."
      	Awesome. 
      	
      	</li>
      <LI> Our friend Tobias Trelle is at it again! This week, he's   <A…

    获取Spring通讯

    通过Spring通讯保持联系

    订阅

    领先一步

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

    了解更多

    获得支持

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

    了解更多

    即将举行的活动

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

    查看全部