The Spring Blog

Engineering
Releases
News and Events

Spring IO Platform Cairo-RC1

It’s my pleasure to announce that Spring IO Platform Cairo-RC1 is now available from the Spring milestone repository. The Cairo generation of the Platform builds on top of Spring Framework 5.0 and Spring Boot 2.0 and requires Java 8.

Cairo includes the following projects:

  • AspectJ 1.8.13
  • Reactor Bismuth-SR7
  • Spring AMQP 2.0.2
  • Spring Batch 4.0.0
  • Spring Boot 2.0.0
  • Spring Cloud Connectors 2.0.1
  • Spring Data Kay-SR5
  • Spring Framework 5.0.4
  • Spring HATEOAS 0.24.0
  • Spring Integration 5.0.3
  • Spring Kafka 2.1.4
  • Spring LDAP 2.3.2
  • Spring Plugin 1.2.0
  • Spring REST Docs 2.0.0
  • Spring Retry 1.2.2
  • Spring Security 5.0.3
  • Spring Security JWT 1.0.9
  • Spring Security OAuth 2.2.1
  • Spring Session Apple-SR1
  • Spring Social 1.1.6
  • Spring Social Twitter 1.1.2
  • Spring Web Flow 2.5.0
  • Spring Web Services 3.0.0
Read more...

Upgrading start.spring.io to Spring Boot 2

Spring Boot 2 was released recently and the production instance of Spring Initializr (start.spring.io) was upgraded to Spring Boot 2 the same day.

In this post, I’d like to walk you through the process of upgrading a Spring Boot 1.x app to Spring Boot 2.

Release notes and migration guide

A good first step is to get yourself familiar with the main changes in Spring Boot 2 by reading the migration guide and the release notes.

Build upgrade

If you are using Maven and the spring-boot-starter-parent, you need to be aware that several plugins are going to be updated as part of the upgrade. If you’re not using the parent, it is worthwhile to inspect your build and upgrade the plugins that you are using. Spring Initializr is built with Maven so the easiest way is to scan spring-boot-dependencies and upgrade the plugins you are using if necessary.

Read more...

Testing auto-configurations with Spring Boot 2.0

Auto-configuration is one of the most powerful features of Spring Boot. Tests for auto-configuration classes usually follow the same pattern. Most tests start up an ApplicationContext with the auto-configuration class under test and depending on the test, also load additional configuration to simulate user behavior. The recurrence of this pattern can add a lot of repetition in the code base.

Spring Boot 2.0 provides a suite of new test helpers for easily configuring an ApplicationContext to simulate auto-configuration test scenarios. The following example configures an ApplicationContextRunner to test the UserServiceAutoConfiguration:

Read more...

Spring Batch 3.0.9.RELEASE and 4.0.1.RELEASE are now available

We are pleased to announce the release of Spring Batch 3.0.9.RELEASE and 4.0.1.RELEASE via Maven Central, Github, and the Pivotal download repository.

These two maintenance releases address a number of bug fixes, enhancements and documentation updates. For a complete list of changes, please refer to the change logs for 3.0.9 and 4.0.1. Many thanks to all of those who submitted pull requests that went into these releases.

Please note that the next patch version, 3.0.10.RELEASE, will be the last maintenance release of the 3.x line. We strongly recommend users to migrate to the latest and greatest Spring Batch 4 (now available via Spring Boot 2).

Read more...

Security issue in Spring Data REST (CVE-2017-8046)

Last fall, a security vulnerability affecting Spring Data REST was discovered. We patched the affected modules and published a CVE. We’ve seen some recent news about this that’s led to confusion. Here’s the scoop:

tl;dr:

  • There was a security vulnerability allowing arbitrary code execution in Spring Data REST up to version 2.6.8 and 3.0.0.
  • This vulnerability has been fixed in the following versions:
    – Spring Data REST 2.6.9 (Ingalls SR9, Oct. 27th, 2017), included in Spring Boot 1.5.9 (Oct, 28th 2017).
    – Spring Data REST 3.0.1 (Kay SR1, Oct. 27th 2017), included in Spring Boot 2.0 M6, (Nov. 6th 2017)
  • The CVE was originally published at the end of September 2017. We originally thought that we had fixed the issue with releases that had been published a couple of days before. Subsequent feedback showed that this wasn’t the case and the issue was eventually fixed in October / November 2017. Regrettably, the CVE was not updated to reflect this. The team is working on making sure that this lack of update does not happen again.
Read more...

Using Spring Security 5 to integrate with OAuth 2-secured services such as Facebook and GitHub

One of the key features in Spring Security 5 is support for writing applications that integrate with services that are secured with OAuth 2. This includes the ability to sign into an application by way of an external service such as Facebook or GitHub.

But with a little bit of extra code, you can also obtain an OAuth 2 access token that can be used to perform authorized requests against the service’s API.

In this article, we’re going to look at how to develop a Spring Boot application that, using Spring Security 5, integrates with Facebook. You can find the complete code for this article at https://github.com/habuma/facebook-security5.

Read more...

This Week in Spring - Tuesday March 6th, 2018

Hi Spring fans and welcome to another installment of This Week in Spring! As I write this it’s early morning Tuesday in Sydney, Australia, where I’ve been visiting with some of Pivotal’s amazing customers, and I’m now preparing for my flight to Dubai, in six short hours, where I’ll visit some more of Pivotal’s amazing customers. Later this week I’ll be in Bangalore, India, for the amazing Agile India conference, and then - early next week on Tuesday - I’ll be in Boston, MA for the first SpringOne Tour event. If you’re around don’t hesitate to say hi, as usual!

Read more...

Spring Security SAML Roadmap

The Spring Security SAML project has been an integral part of the Spring ecosystem since its inception nearly 9 years ago. This critically important project was born through the incredible effort and contributions of Vladimír Schäfer. I’d like to take the time to personally thank Vladimír and our fantastic community for their tireless work. Without all of their efforts, this project would not be what it is today.

Vladimír, our amazing community, and the Spring engineering team are planning to team up to enhance Spring Security SAML to achieve the following primary goals:

Read more...

Spring Cloud Finchley M8 is available

On behalf of the community, I am pleased to announce that the Milestone 8 (M8) of the Spring Cloud Finchley Release Train is available today. The release can be found in Spring Milestone repository. You can check out the Finchley release notes for more information.

Notable Changes in the Finchley Release Train

Finchley.M8 is compatible with Spring Boot 2.0.0.RELEASE.

Spring Cloud Gateway

Some bug fixes and small configuration enhancements.

Spring Cloud Bus

Fixes for custom remote events.

Spring Cloud Security

Read more...