close

The latest on Azure Active Directory integration

Whether you are building a web API, mobile front end or a good-old fashioned desktop application, identity and access management will always be foundational pieces that are front and center in writing software. Azure offers a great platform to democratize your application development journey, as it not only offers a cloud-base identity service, but also deep integration with the rest of the Azure ecosystem. Spring Security has made it easy to secure your Spring based applications with powerful abstractions and extensible interfaces. However as powerful as the Spring framework can be, it is not tailored to a specific identity provider. The Azure Spring Boot Starter for Azure Active Directory is the result of collaborative efforts from Microsoft and VMware to provide the most optimal way to connect your application to an Azure AD tenant and protect resource APIs with Azure Active Directory. Case in point, there are scenarios where you may want to authorize against multiple resource servers, and you can simply do that by including multiple authorization clients in your application configuration.

Read more

YMNNALFT: Express Yourself with SpEL

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

Do your users want a convenient, bite-sized way to customize the behavior of your application? Expression Languages are purpose-built to allow low-touch customization of application behavior. Expression languages have a ton of applications. They can help you evaluate things! Perhaps they could run simple predicate logic that a user has configured. An expression language can dereference environment values, glue things together, support templating, customize access control and authorization predicates, support customized messaging flow routing and workflow event handler logic, and so much more. A good expression language is so useful that we built the Spring Expression Language (SpEL) and shipped it with Spring Framework 3.0 waaaaay back in 2009!

Read more

This Week in Spring - January 12th, 2021

I almost wrote in 2020! There’s been so much going on I almost forgot to take stock of the year. What a rush. We better get to the roundup before I somehow lose even more track of time. So, without further ado, this week’s roundup.

Read more

YMNNALFT: HTTP Clients

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

Today we’re going to look at an all-in-one, handy dandy HTTP client, the WebClient.

Read more

Spring Data's Migration from Jira to GitHub Issues

Spring Data has migrated its entire history of issues from Jira to GitHub. The goal of this blog post is to give you context and details about this migration.

Migration Details

Spring Data issues have been managed for over ten years in Jira. Today, every issue and every comment has been imported into GitHub. There is a lot to consider in such a move, so let’s take a tour and go over some details.

Spring Data consists of 19 individual projects, each one of which is associated with its own issue tracker namespace. Four projects (Spring Data Build, BOM, Envers, and R2DBC) have been using GitHub. One project (Spring Data GemFire) was not migrated as it is in maintenance mode and is going end of life soon.
During this migration, we migrated almost 15,000 tickets from 14 Jira projects into 14 GitHub repositories.

Read more

YMNNALFT: Reactive Dataflow with Project Reactor

Welcome to another installment of You May Not Need Another Library For That (YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

And it’s a good thing we’re covering some of these complexity-reducing gems, too, you see, because the world is a confusing, complex, and dizzying place, and nowhere is that more evident than in the world of reactive data stream composition. Life comes at you fast and data, even more so. Data originates from everything (network services, databases, in-memory computation, threaded code, etc.). Data comes in many different sizes and shapes (one record, ten records, infinite records, etc.). Data comes in different volumes, starving or overwhelming its consumers. Data arrives at different cadences and times: now, later, all at once, periodically, etc. It’s much more natural to talk about data that’s already in memory, in hand, so to speak, than data that hasn’t yet materialized. And it’s more natural to talk about data in the single-threaded case than to deal with it in the concurrent case.

Read more

This Week in Spring, January 5th, 2020 - 10th Anniversary Edition

Hi, Spring fans! Happy new year! And welcome to another installment of This Week in Spring! Today is a significant installment because it marks a decade of This Week in Spring!

I started this roundup after a fun discussion with the legendarily nice guy and SpringSource co-founder Keith Donald in late 2010 over the holiday. Lo, the first week of January 2011, the first edition of this roundup went out the door on the old SpringSource.org blog.

It’s been so much fun putting together this roundup, without fail, every Tuesday for the last decade. You wouldn’t believe the lengths to which I went to get this out on Tuesday, well, my Tuesday, no matter where I was. I’d be on planes all the time and the original blog software on SpringSource.org didn’t support scheduling posts, so I’d either publish it a little early or - if I was going to be on a plane for the entirety of the useful day - I’d have my then manager Adam Fitzgerald post it for me. He reviewed the content for the first few years of the blog, too. What a legend that guy is. I learned a ton (about everything really, but also writing in particular) working with him. Nowadays, most flights longer than an hour or two have wi-fi onboard; but not so back then. Nowadays the software we use to blog - custom, open-source software that we built with Spring back in 2013 that underpins the spring.io) experience - supports scheduled posts, as well, so it’s much easier to get this post out on time.

Read more

YMNNALFT: Easy Docker Image Creation with the Spring Boot Maven Plugin and Buildpacks

Welcome to another installment of You May Not Need Another Library For That (#YMNNALFT)! I’ve spent a lot of time since 2016 illuminating (or trying to, anyway!) some of the more enormous opportunities in the Spring ecosystem in my Spring Tips videos. Today, however, I come to you in a different spirit, wanting to focus on the little, sometimes hidden, gems that do fantastic things and that might spare you an additional third-party dependency and its implied complexity.

Have you tried out Paketo? It’s neat-o! It alleviates one of the biggest pains of cloudy software these days:Dockerfiles.

Read more