close

Craig Walls

Craig Walls

Sr. Engineer

Denver, CO

Craig Walls is a senior engineer with Pivotal as the Spring Social project lead and is the author of Spring in Action and Spring Boot in Action. He's a zealous promoter of the Spring Framework, speaking frequently at local user groups and conferences and writing about Spring. When he's not slinging code, Craig spends as much time as he can with his wife, two daughters, 2 birds and 3 dogs.
Blog Posts by Craig Walls

Spring Social End of Life Announcement

Today it is with an optimistic look to the future that I am announcing the end of life for Spring Social, a project that I have had the pleasure to work with over the past eight years.

With the release of Spring Security 5, much of the functionality offered by Spring Social’s connection framework—which I consider the most valuable piece of Spring Social—is now part of Spring Security. In fact, I shared how to use Spring Security’s new support for client-side OAuth2 in a blog article from back in March. And as Spring Security continues to evolve its client-side OAuth support, Spring Social’s connection framework will continue to become more unnecessary. It simply no longer makes sense to have Spring’s OAuth story spread across so many projects—it’s time for a single cohesive OAuth story for Spring developers.

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...

Spring Social Facebook 2.0.3 Released

Dear Spring Community,

I’m pleased to announce the release of Spring Social Facebook 2.0.3.RELEASE. This is a maintenance release that addresses a few bugs, the most significant of which was a breaking change introduced recently in Facebook’s Graph API which prevented connections and sign-in from working with Spring Social Facebook. In addition, the API binding has been adjusted to target Graph API v2.5.

View the changelog for more details.

Project Site | Reference | JavaDoc

Read more...

Spring Social 1.1.4 Released

Dear Spring Community,

I’m pleased to announce the availability of Spring Social 1.1.4.RELEASE. This includes the Spring Social Core, Web, Security, and Config modules.

This is a maintenance release, addressing a handful of bugs and introducing a few minor improvements (many of which were submitted as pull requests from our wonderful open-source community…thanks!). View the changelog for full details.

Project Site | Reference | JavaDoc

Read more...

Spring Social 1.1.1 Released

Dear Spring Community,

I’m pleased to announce the availability of Spring Social 1.1.1.RELEASE. This is a maintenance release, addressing a handful of bugs and introducing a few minor improvements. View the release notes for full details.

Compatibility note: In order to fix a serialization issue when using ProviderSignInUtils, a minor breaking change was necessary. ProviderSignInAttempt no longer carries its own ConnectionFactoryLocator and UsersConnectionRepository. Those must now be passed in as parameters when instantiating ProviderSignInUtils.

Read more...

Spring Social Facebook 2.0.1 Released

I’m pleased to announce the release of Spring Social Facebook 2.0.1.RELEASE. This maintenance release addresses a handful of bugs that were discovered following the 2.0.0.RELEASE two weeks ago. For complete details regarding this release, see the changelog.

Note that if you’re using Spring Social Facebook with Spring Boot, the Spring Boot starter for Spring Social Facebook still references 1.1.1.RELEASE. But you can override that by explicitly declaring the 2.0.1.RELEASE dependency in your Maven or Gradle build. See the Spring Social Showcase/Spring Boot example to see how this is done.

Read more...

Spring Social Facebook 2.0.0.RELEASE Released

Dear Spring Community,

I’m happy to announce the release of Spring Social Facebook 2.0.0.RELEASE. This release completes the overhaul of Spring Social Facebook to target version 2.3 of Facebook’s Graph API.Facebook will be turning off version 1.0 of their Graph API on April 30th, so it is highly recommended that you upgrade to Spring Social Facebook 2.0.0.RELEASE as soon as possible.

As has been mentioned in last week’s release candidate and in milestone releases prior to that, Facebook’s Graph API introduced several breaking changes which resulted in many breaking changes between Spring Social Facebook 1.1.x and Spring Social Facebook 2.0.0. Also, even some operations that still work do not work as they did previously. For example, it is no longer possible to fetch a list of all of a users’s Facebook friends; you can only fetch a list of their friends who have also authorized your application with Facebook.

Read more...

Spring Social Facebook 2.0.0.RC1 Released

Dear Spring Community,

I’m pleased to announce the release of Spring Social Facebook 2.0.0.RC1. This release candidate brings Spring Social Facebook’s API binding to target version 2.3 of Facebook’s Graph API.

View the release notes here.

Be aware that due to many breaking changes in Facebook’s Graph API between v1.0 and v2.0, plus additional changes up through v2.3, there are some necessary breaking changes in this version of Spring Social Facebook. Also, because of the large number of breaking changes already imposed upon Spring Social Facebook by changes in the Graph API, we decided to take this opportunity to rename a few types to be more consistent with Facebook’s terminology. (For example, the FacebookProfile class is now named User to be consistent with Facebook’s documentation.)

Read more...

Introducing Spring Sync

Earlier today, I announced the first milestone release of Spring Sync, a new project that addresses efficient communication between client applications and Spring backends by employing patch-based exchanges. As this is a new project, I thought it would be a good time to show you what Spring Sync can do.

The examples given here refer to the Spring REST Todos example and/or the Todo class in that example project.

Creating and applying patches

At its lowest level, Spring Sync provides a library for producing and applying patches to Java objects. The Patch class is the centerpiece of this library, capturing the changes that can be applied to an object to bring it in sync with another object.

Read more...