Skip to content

Spring Lemon JPA Guide

Sanjay Patel edited this page Jan 11, 2019 · 11 revisions

spring-lemon-jpa is one of the leafs in the spring-lemon set of libraries, which your monoliths or authentication services can use. It adds authentication functionalities to spring-lemon-commons-jpa. It comes with a lot of things, which are discussed below.

AbstractUser

AbstractUser comes with the essential user fields, such as email and password. Your User entity should inherit this. To know how, refer to the getting started giude.

Adding roles to your application

The roles field of AbstractUser holds all the user roles. It's a set of String, and so you're free to add any custom roles you may want to use in your application.

Security configuration

LemonJpaSecurityConfig, along all the helper beans in the com.naturalprogrammer.spring.lemon.security package, are responsible for configuring security of your application. This package is packed with many beautiful features, like stateless social signup/login.

And it's quite customizable — you can provide your own bean to override a built-in one. A simple example is MySecurityConfig in the lemon-demo-jpa project.

Email Validation for Uniqueness

UniqueEmail and UniqueEmailValidator define a constraint that's used in AbstractUser for ensuring uniqueness of emails of the user.

Clone this wiki locally