Spring Security Java 配置预览:方法安全
更新
用户应参考包含最新信息的Spring Security 参考手册。
原始博客文章
这是四部分博客系列的第三篇。在我的第一篇文章中,我介绍了 Spring Security Java 配置并讨论了该项目的一些组织工作。在我之前的文章中,我们通过几个示例来配置基于 Web 的安全性。
在这篇文章中,我将讨论如何使用 Spring Security Java 配置来配置基于方法的安全性。与我们之前的文章一样,我们将从一个非常基础的示例开始,然后跟进一个示例……
Spring 本周回顾 - 2013年7月2日
欢迎阅读最新一期的 Spring 本周回顾!照例,我们有很多内容要介绍,让我们开始吧!
- Spring 和 Cloud Foundry 专家 Jennifer Hickey 宣布 Spring Data Redis 1.1 M1 和 1.0.5 版本已发布。快去看看吧!
- Spring Security 负责人(兼专家)Rob Winch 宣布了 Spring Security Java 配置支持的初步可用性。Rob 刚刚也发布了一篇非常不错的文章(四篇中的第一篇),介绍了新的 Spring Security Java 配置支持。第一篇文章讨论了在哪里可以找到新的 Spring Security Java 配置支持。
- 欢迎参加7月18日的网络研讨会,主题是“没有 Lambdas 的函数式编程”,它介绍了如何在当前(而不是等待 Java 8!)使用 Guava、LambaJ 和 Functional Java 进行函数式编程的方法。
- Corby Page 写了一篇非常不错的文章,介绍了如何通过他的项目 Yoga 扩展 REST API 的能力。特别是,它支持一种称为
selector
的功能,可用于提取 REST 响应的子视图以发送回客户端。这也可用于支持 Lez Hazelwood 恰当地描述的 实体展开。 - Crunchify 博客上有一篇不错的文章,介绍了如何使用 Spring MVC 上传多个文件。
- SpringSource 已将一门新的核心 Spring 在线直播课程添加到九月的课程表中。
- Spring LDAP 项目已经转向社交化,并迁移到了GitHub!
- 我们的朋友丁学丰(你可能记得他曾帮助撰写了博客“Spring 在中国的规模 - 阿里巴巴集团、支付宝、淘宝和天猫”)最近刚刚做了一个非常棒的关于使用 Spring 构建 REST API 的演示。我认为他的幻灯片很酷,所以去看看吧!
- Sergey Shcherbakov 最近做了一个精彩的演讲,介绍了一系列酷炫的东西。我认为他的示例代码特别值得一看。代码包含了 Spring 4 WebSockets、无 XML 的 Spring Batch、Reactor 和 AngularJS 示例。干得漂亮,Sergey!
- Johnathan Mark Smith 写了一篇不错的博客,介绍了如何将 Spring Data 与 MongoDB 结合使用。干得漂亮!
- Nicolas Frankel 写了一篇非常不错的文章,介绍了一些引人注目的Spring 3.2 特性。干得漂亮,Nicolas!
- Nick Williams 提交了一个pull-request,支持使用 Java 配置与 Spring WS 的
MessageDispatcherServlet
,以便可以在ServletContextListener
或ServletContainerInitializer
中进行配置。干得漂亮,Nick! - 这并非专门针对 Spring 或 Spring Batch,但 Technology AMIS 博客有一篇有趣的文章,介绍了如何使用 Batch JSR(它基于 Spring Batch,并与 Spring Batch 团队合作设计)构建下载管理器。(不用担心,使用 Batch JSR 不必非得用 GlassFish!)相当酷!如果你了解 Spring Batch,那么这些内容会看起来很熟悉,而且由于 Spring Batch 也将实现 JSR,这应该会为将来想使用 Spring Batch 的任何人提供一个非常好的入门途径。
Spring Security Java 配置预览:Web 安全
更新
用户应参考包含最新信息的Spring Security 参考手册。
原始博客文章
在我的上一篇文章中,我介绍了 Spring Security Java 配置并讨论了项目的一些组织工作。在这篇文章中,我们将从一个非常简单的 Web 安全配置开始,然后通过一些自定义配置来增加一些趣味性。
你好,Web 安全
在本节中,我们将介绍基于 Web 的安全性的最基本配置。它可以分解为四个步骤:
- 更新依赖 - 在我们之前的博客文章中,我们使用 Maven 演示了这一点
- 提供 Spring Security 配置 - 在我们的示例中,这是通过 WebSecurityConfigurerAdapter 完成的
- 确保 Spring Security 配置被加载 - 在我们的示例中,这是通过 AbstractAnnotationConfigDispatcherServletInitializer 完成的
- 配置 springSecurityFilterChain - 在我们的示例中,这是通过 AbstractSecurityWebApplicationInitializer 完成的 ……
Spring Security Java 配置预览:介绍
昨天我宣布了发布 Spring Security Java Configuration 支持和包含 Java Configuration 支持的发布 Spring Security 3.2.0.M2。
Spring Security 的 Java Configuration 支持旨在完全取代XML 命名空间配置。它也被设计为可扩展的,以便 Spring Security 的扩展项目可以与 Java Configuration 支持良好地协作。
在这个五部分 Spring Security Java Configuration 博客系列的第一篇文章中,我讨论了 Spring Security Java Configuration 项目的组织工作。
[callout title="所需版本"]无论您决定如何集成 Spring Security,务必确保您使用的是 Spring 3.2.3.RELEASE+,以避免 SPR-10546。[/callout]
可用性
在我们开始之前,我想谈谈可以找到 Spring Security 的 Java Configuration 的两个模块。
在 Spring Security 3.2.0.M2+ 中的可用性
Spring Security Java Configuration 已被复制到 Spring Security 3.2.0.M2+ 的代码库中。这意味着如果您使用 Spring Security 3.2.0.M2+,应确保 classpath 中包含 spring-security-config jar。例如,您可能有以下内容……
Spring 本周回顾 - 2013年6月25日
欢迎回到最新一期的 Spring 本周回顾。照例,我们有很多内容要介绍。特别是,你会注意到本周的汇总文章包含了大量出色的 Spring Batch 内容。所以,让我们开始吧 -- 别忘了 SpringOne2GX 的早鸟票价将于8月9日截止!
- 几周前,我举办了一个网络研讨会,介绍了如何使用 Spring 丰富的 REST 技术栈构建 REST API,很高兴地告诉大家,这次演讲——通过一个简单的示例应用介绍了 Spring MVC、Spring HATEOAS、Spring REST Shell、Spring Data REST、Spring Security OAuth 和 Spring Social——现已在 SpringSourceDev YouTube 频道上提供。正如我上周提到的,幻灯片可在我的 SlideShare.net 页面上找到,代码可在我的 GitHub 页面上找到。请欣赏,如有反馈/问题,请随时发送至 josh(dot)long(at)SpringSource(dot)com!
- InfoQ 发布了一篇很棒的文章,介绍了JSR 352,Java 批处理规范。如果你是 Spring Batch 用户,那么这些内容会看起来非常熟悉!我认为这是一个特别好的 JSR,并鼓励你查看一下。Spring
- Chris Schaefer 为 DZone 编写了一份精彩的 Spring Batch 速查卡,昨天刚刚发布,快去 DZone 免费下载吧。
- Craig Walls 宣布 Spring Social Facebook 1.0.3 现已发布。新版本解决了即将到来的 Facebook API 修订版中的重大变更。
- Gary Russell 宣布 Spring AMQP 1.2.0 发布候选版现已可用。新版本包含许多改进和 bug 修复。
- Johnathan Mark Smith 又来啦,这次带来了一篇关于使用 RESTTemplate 将数据发送到 Web 服务的博客。干得漂亮,Jonathan!
- 本周 SpringSource 在旧金山提供了一个为期四天的 Groovy & Grails 课程,请在此查看详情
- 我们的朋友 Tobias Flohre 又来了,带来了他介绍 Spring Batch Java 配置系列的第四部分。
- Leleu Jérôme 发布了一个 Spring Security Pac4J 客户端。它支持 OAuth(包含提供者)、OpenID、CAS 和 HTTP。
- 你是 Spring Champion 吗?参加活动即有机会赢取免费的 SpringOne2GX 2013 门票!
- Vamsi Kancharla 用 Spring MVC 搭建了一个很棒的示例项目,包含了 bean 验证、错误处理(使用
@ControllerAdvice
)、防范 XSS 和输入表单攻击等更多内容。快去看看吧! - Kim Saabye Pedersen 写了一篇不错的文章,强调了一些关于 Spring 中 单例 的实用(且希望大家能充分理解的!)原则。
- 白汉思写了一篇非常不错的文章,解释了如何从Spring Tool Suite中创建 Spring 项目。
Spring 本周回顾 - 2013年6月18日
欢迎回到最新一期的 Spring 本周回顾!多么精彩的一周!我们正迅速接近SpringOne2GX 2013之旅的最后阶段,各项准备工作正在全力进行。今年将会是令人难忘的。我希望能告诉你更多,但请相信我,你今年一定要参加这个展会!:)
言归正传,让我们开始本周的汇总吧!
- Mark Pollack 宣布发布了 Spring XD 1.0 里程碑 1。Spring XD 是一个统一、分布式且可扩展的系统,用于数据摄入、实时分析、批处理和数据导出。该项目的目标是简化大数据应用的开发。
- 欢迎在6月27日参加来自 Liberty 大学 的 Tony Erksine 主讲的网络研讨会,他将向我们讲解如何谈论 Spring 并影响他人,这是一堂实用的软技能和技术采用策略课,旨在帮助公司里的其他人对新技术感到兴奋并使用它——在这种情况下,就是 Spring。
- 想要一张 SpringOne 2GX 2013 的门票吗?如果你是 Spring champion,请在我们的 champions 论坛上展示你的实力并按照这些指示操作,截止日期为2013年6月21日。你可能会成为我们5位幸运获奖者之一!(如果你是 Groovy & Grails 或 Cloud Foundry champion,别担心,我们将来会推出适合你的比赛!)
- 前往 gopivotal.com 查看 Hadoop 101 系列的下一篇博客 -- 如何将 Spring Batch 与 Spring for Apache Hadoop 结合使用。
- 我们很高兴与 Manning Publications 合作推出 A Week of Spring 活动。请查看这篇文章,了解涵盖 SpringSource 技术的图书的超值折扣信息!我们每天都会发布一个针对两本书的新的50%折扣码。
- 我们的朋友 Tobias Fiohre 又来了,这次带来了不是一篇,不是两篇,而是三篇关于 Spring Batch Java 配置支持的文章,这些支持刚刚在最新的 Spring Batch 2.2.0.RELEASE 版本中发布。第一篇文章探讨了Spring Batch 的 Java 配置支持与 XML 对应配置的对比。第二篇文章探讨了 Spring Batch 的
StepScope
,它允许您配置运行时提供参数的job
(而不是设计时提供参数)。第三篇文章探讨了如何将新的配置样式与Spring 的环境配置文件功能结合使用。 - Johnathan Mark Smith 写了一篇关于如何使用 Spring MVC 和 Spring MVC Test 的文章
- Xavier Padró 写了一篇不错的文章,介绍了 Spring 的核心面向切面编程支持。
- Broadleaf Commerce 项目关于从 GWT 迁移到 Spring MVC 的网络研讨会视频回放现已在我们的 SpringSourceDev YouTube 频道上提供。
- 这并非严格与 Spring 相关,但我认为值得一提:Java 9 计划放弃对编译 Java 1.4 或更早版本源代码的支持。Java 8 正在临近(终于!),Spring 4 将为 Java 8 lambda 提供一流支持。Java 6 已于2013年2月停止支持,所以如果你还没有升级到 Java 7,考虑在明年初 Java 8 发布时直接跳到 Java 8。如果你现在正在迁移,至少要考虑使用 Java 7。当然,Spring 与较旧的 JDK 版本配合良好,但如果新语言版本可用,我们通常会提供特定于它们的功能。例如,当 Java 5 使注解(如
@Transactional
)成为可能时,我们首次引入了它们,作为对当时主要支持 commons 注解的补充,即使我们同时支持 Java 1.3 和 1.4。Java 8 也不例外。 - 上周我举办了一个关于使用 Spring 构建 REST API 的网络研讨会。研讨会视频很快将在我们的 SpringSource Developer YouTube 频道上发布。对于许多人提出的问题,代码可以在我的 GitHub 账户上找到,幻灯片可以在我的 SlideShare 账户上找到。去看看吧!
- Petri Kainulainen 写了一篇非常详细、易于阅读的文章,介绍了如何在配置
@Scheduled
注解的 CRON 表达式时,从属性文件中插入属性。
Spring XD 1.0 里程碑 1 发布
今天我们很高兴宣布 Spring XD 1.0 M1 版本(下载)发布。Spring XD 是一个统一、分布式且可扩展的系统,用于数据摄入、实时分析、批处理和数据导出。 该项目的目标是简化大数据应用的开发。
从万米高空俯瞰,大数据应用与企业集成和批处理应用有很多共同的特点。 Spring 通过 Spring Integration 和 Spring Batch 项目,在构建集成和批处理应用方面提供了超过6年的成熟解决方案。 Spring XD 在此基础上构建,提供了一个轻量级运行时环境,可以通过简单的 DSL 轻松配置和组装。
在本博客中,我们将介绍 Spring XD 的关键组件,即 Streams、Jobs、Taps、Analytics 以及用于声明它们的 DSL,同时也会介绍运行时架构。 更多详细信息可以在XD 指南中找到。流 (Streams)
流 (Stream) 定义了数据如何收集、处理、存储或转发。 例如,一个流可以收集 syslog 数据,对其进行过滤,然后将其存储在 HDFS 中。 Spring XD 提供了一种 DSL 来定义流。 DSL 允许您使用 UNIX 管道和过滤器语法构建简单的线性处理流程,但也允许您使用扩展语法描述更复杂的流程。源 (Sources) 和汇 (Sinks)
一个简单的线性流由以下序列组成:输入源 (Input Source),(可选)处理步骤 (Processing Steps),以及输出汇 (Output Sink)。 举一个简单的例子,考虑从 HTTP 源收集数据并写入文件汇。描述此流的 DSL 如下:http | file
您可以通过向默认运行在端口 8080 的 XD Admin Server 发送 HTTP 请求来告诉 Spring XD 创建一个流。 在 M2 版本中,我们将提供一个交互式 shell 来与 XD 进行通信,但在 M1 版本中,与 XD 交互的最简单方式是使用 ‘curl’。
curl -d "http | file" http://localhost:8080/streams/httptest
流的名称是 httptest
,默认监听的 HTTP 端口是 9000
,默认文件位置是 /tmp/xd/output/${streamname}
。
curl -d "hello world" http://localhost:9000
您将在文件 /tmp/xd/output/httptest
中看到字符串 hello world
要更改默认值,您可以传入选项参数
http --port=9090 | file --dir=/var/streams --name=data.txt
M1 版本中支持的源包括 file, time, HTTP, Tail, Twitter Search, Gemfire (Continuous Queries), Gemfire (Cache Event), Syslog 和 TCP。 支持的汇包括 Log, File, HDFS…
Spring 本周回顾 - 2013年6月11日
大家好,欢迎阅读最新一期的 Spring 本周回顾!本周我在纽约州纽约市,与 NYC Java Meetup 和 ScalaDays 的开发者们交流 Spring。本月我们有很多网络研讨会,请务必查看下方详情!
- 想要一张SpringOne 2GX 2013 的门票吗?如果你是 Spring champion,请在我们的 champions 论坛上展示你的实力并按照这些指示操作,截止日期为2013年6月21日。你可能会成为我们5位幸运获奖者之一!(如果你是 Groovy & Grails 或 Cloud Foundry champion,别担心,我们将来会推出适合你的比赛!)
- Oliver Gierke 宣布发布 Spring Data Babbage,这是下一个 Spring Data 发布火车 (release train) 的第一个里程碑版本。此版本包含大量新特性,所以务必查看发行说明!
- Spring Batch 2.2.0 现已发布!这是一个重要版本,除了许多其他特性外,还支持 Spring Data、Java Configuration、AMQP 和 SQLFire。Spring Batch 以及我们参与专家组极大地影响了最近定稿的 JSR-352 规范。
- 基于 Eclipse Kepler 4.3 的Spring Tool Suite 和 Groovy / Grails Tool Suite 3.3.0 M2 已发布。此里程碑版本改进了 Java Configuration 支持,并已为 Spring Framework 4 做好准备。
- Craig Walls 宣布Spring Social Twitter 1.0.5 和 Spring Social 1.0.3 已发布!新版本修复了一些 bug,并为了应对 Twitter API 1.0 版本的废弃而发布。
- Gary Russell 还宣布了 Spring Integration 2.2.4 和 2.1.6 维护版本,以包含上述提到的 Spring Social Twitter 更新。
- 我将在周四举办一个关于使用 Spring 设计 RESTful 服务的网络研讨会。照例,将有两个场次 - 一个是格林威治标准时间下午3点,另一个是太平洋标准时间上午10点 - 以适应尽可能多的时区。研讨会将介绍 Spring 用于构建 RESTful 服务的技术栈。我们将从一个简单的 API 开始,然后逐步完善 API,介绍使用 Spring HATEOAS 的超媒体控件,使用 Spring Data REST 的基于约定的 repository-based API,使用 Spring Security OAuth 和 Spring Social 的安全性,以及处理文件上传、异常处理、记录分页和 Ajax 等常见情况。期待在那里见到您!
- 不要错过 Jon Brisbin 在2013年6月18日的演讲,他将介绍介绍 Reactor - 一个用于 JVM 异步应用的框架。 Reactor 为那些在执行合理大小的无状态、异步处理时需要高吞吐量的应用提供了基础框架。
- 欢迎在6月27日参加来自 Liberty 大学 的 Tony Erksine 主讲的网络研讨会,他将向我们讲解如何谈论 Spring 并影响他人,这是一堂实用的软技能和技术采用策略课,旨在帮助公司里的其他开发者对新技术感到兴奋并使用它——在这种情况下,就是 Spring。
- 我在三月份精彩的 DevNexus 会议上做了一个关于Spring 3.1、3.2 和 4.0 最新进展的演讲,现在该演讲已在 InfoQ 上在线提供。请务必查看这个演讲,同时也请务必查看我在 JAXConf 演讲中使用的更最新版本的幻灯片,它可以在我的 SlideShare 账户上找到。
- 前往Pivotal 博客,阅读 Hadoop 编程入门短文,它将带您了解一个简单的单词计数程序。示例介绍了经典的单词计数问题,然后探讨了生态系统中的其他解决方案,如 Pig、Hive 和 Cascading。本系列的下一篇博客将向初学者介绍 Spring for Apache Hadoop,为本文讨论的四种不同方法提供一种统一、一致的替代方案。
- 相关新闻是,如果您在纽约市地区,欢迎在周三晚上参加我在 10gen 办公室为 NYCJava 聚会举办的同一场演讲,地点在这里。再次感谢 MongoDB 的公司 10gen 主办此次聚会。
- JavaBeat 博客上有一篇不错的文章,介绍了如何使用 Spring 强大的多部分文件上传支持。Spring 的支持抽象了常见的文件上传 API——包括
commons-fileupload
API 和 Servlet 3 API——并允许您将这些 API 用于 HTTP 多部分编码的文件上传,通常在 Web 应用或 REST 服务中。绝对值得一读,快去看看吧! - Idan Fridman 整理了一篇关于Spring Integration 中一些常见组件类型的概览,包括 splitter、transformer、aggregator 等等。
- 对于那些希望将 Spring 技能提升到更高水平的开发者,SpringSource 刚刚发布了2013年7月 Spring 专业培训日程
- Spring tutorials 博客上有一篇很棒的文章,介绍了 Spring 的
@Async
和@Scheduled
注解。
Spring Data 发布火车 Babbage 第一个里程碑版本抵达
我很高兴宣布名为Babbage的 Spring Data 发布火车的第一个服务里程碑版本。它包含以下模块:
- Spring Data Commons 1.6 M1 - 变更日志
- Spring Data JPA 1.4 M1 - 变更日志
- Spring Data MongoDB 1.3 M1 - 变更日志
- Spring Data Neo4j 2.3 M1 - 变更日志
第一个里程碑版本包含相当多的新特性,以及已在Arora 的服务版本中发布的所有 bug 修复。
快速浏览此版本
此版本的大部分变更已融入 Spring Data Commons,为下一代 Spring Data 项目构建坚实的基础,并确保该基础快速成熟。此发布列车中的其他模块已适应这些变更,因此也从中受益。
我们已升级到 Querydsl 3.x API,以适应其主要版本中引入的变更。仓库抽象已添加了对忽略大小写的排序支持,以及用于派生查询的 count…By…(…)
投影…