-
Notifications
You must be signed in to change notification settings - Fork 182
Spring Lemon JPA Guide
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
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 guide.
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.
LemonJpaSecurityConfig
, along with 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.
It's quite customizable — provide your own bean to override a built-in one. A simple example is MySecurityConfig
in the lemon-demo-jpa project.
UniqueEmail
and UniqueEmailValidator
define a constraint that's used in AbstractUser
for ensuring uniqueness of emails of the user.
LemonController
and LemonService
classes define a user-module API. You'll need to extend these. To know how, refer to the getting started guide.
LemonService is composed of many protected methods, which could be overridden for any customization.
LemonUtils
contains a couple of utility methods, e.g. for logging in a user programmatically.