Five Minutes Tutorial

Create a new Spring Boot 3.x project

Head over to start.spring.io and create a new project with Spring Boot 3.

Add the Apache SCIMple dependencies to the project:

<dependency>
  <groupId>org.apache.directory.scimple</groupId>
  <artifactId>scim-spring-boot-starter</artifactId>
  <version>1.0.0-M1</version>
</dependency>
<dependency>
  <groupId>org.apache.directory.scimple</groupId>
  <artifactId>scim-server</artifactId>
  <version>1.0.0-M1</version>
</dependency>

Implement Repositories

A SCIMple Repository is an abstraction used to reduce the boiler plain needed to implement a SCIM service. Each Repository implementation translates data to and from SCIMple’s data model to an underlying data store.

TL;DR A Repository handles all the CRUD operations of your User and Group data store.

For example, to create an in-memory Repository that manages users objects, create a new class:

@Service
public class InMemoryUserService implements Repository<ScimUser> {

Then implement each method (create, get, update, delete, and find).

The first four map to the expected CRUD operations, and the last method find, allows you to transform a SCIM query, into the query languages your objects are stored in.

You can view this complete example on GitHub.