Skip to content

Load Testing Blog

Securing a Rest API with Spring Security

Most Spring Tutorials available online teach you how to secure a Rest API with Spring with examples which are far from real application problematics. You surely agree that most tutorials lack real-world use-cases.

This tutorial aims to help you secure a real-world application, not just another Hello World Example.

In this tutorial we'll learn:

  • How to secure a Spring MVC Rest API using Spring Security,
  • Configure Spring Security with Java code (no painful XML),
  • And delegate authentication to a UserAuthenticationService with your own business logic.

I've spent several weeks tweaking Spring Security to come up with this simple setup. Let's go!

Complete Source code is available on Github.

Spring Boot Rest Tutorial

I'm sure you're looking for a complete Spring Rest Tutorial which covers the most important topics related to Spring Boot. You're in the right place!

You want to build a web application or a REST API using Spring Boot (and other popular technologies like Thymeleaf), but you don't know where to start... Let me help you get things done. This tutorial explains how to create a simple Rest Api exposing data as Json.

Don't worry, Spring isn't that difficult! In under 5 minutes, you will build your first web app using Spring Boot.

NOTE: Updated with Spring Boot 2 and Spring 5!

Full source code is available at Spring Boot 2 Demo on Github.

Spring Circular Dependencies

I know you've been there, like me:

  • I Have a circular dependency in Spring and my application fails to launch. How to solve this?

The typical exception thrown by Spring is the following:

'org.springframework.security.authenticationManager': Requested bean is currently in creation: Is there an unresolvable circular reference?

And, It does not give much details. So, let's see how we can break the circular dependency cycle and save some sanity!

Spring Autowiring by Example

Spring is a Java library which delivers a useful feature: Inversion Of Control. Basically, instead of instantiating your Java services with new, Spring does it for you.

You may be wondering:

  • That's nice, but isn't new already enough?
  • How does the @Autowired annotation work?
  • How does Spring instantiated and lookup the right beans and services for me?

Good news! We've got you covered. I know how difficult Spring is to understand, I've been there. These carefully crafted real-world examples should speak to you.