Create Project: springboot_security_authorization_authorities_db (add Spring Boot Starters from the table)
Edit File: application.properties (specify Username, Password, Role)
Create Package: entities (inside main package)
– Create Class: Authority.java (inside entities package)
– Create Class: Profile.java (inside entities package)
– Create Class: Account.java (inside entities package)
Create Package: repositories (inside main package)
– Create Class: AuthorityRepository.java (inside repositories package)
– Create Class: ProfileRepository.java (inside repositories package)
– Create Class: AccountRepository.java (inside repositories package)
Create Package: config (inside main package)
– Create Class: WebSecurityConfig.java (inside config package)
Create Package: startup (inside main package)
– Create Class: AuthorityLoader.java (inside config package)
– Create Class: ProfileLoader.java (inside config package)
– Create Class: AccountLoader.java (inside config package)
Create Package: services (inside main package)
– Create Class: MyUserDetailsService.java (inside services package)
Create Package: controllers (inside main package)
– Create Class: MyController.java (inside controllers package)
application.properties
# H2 CONSOLE
spring.h2.console.enabled = true
spring.datasource.url = jdbc:h2:mem:testdb
Authority.java
package com.ivoronline.springboot_security_authorization_authorities_db.entities;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Authority {
@Id
public String name;
//CONSTRUCTORS
public Authority() { } //Forced by @Entity
public Authority(String name) { this.name = name; } //To simplify AuthorityLoader
}