Home

Awesome

__/\\\\\\\\\\\\\______/\\\\\\\\\______/\\\\\\\\\\\\\\\_____/\\\\\\\\\\\____/\\\\\\\\\\\\\\\_______/\\\\\______        
 _\/\\\/////////\\\__/\\\///////\\\___\/\\\///////////____/\\\/////////\\\_\///////\\\/////______/\\\///\\\____       
  _\/\\\_______\/\\\_\/\\\_____\/\\\___\/\\\______________\//\\\______\///________\/\\\_________/\\\/__\///\\\__      
   _\/\\\\\\\\\\\\\/__\/\\\\\\\\\\\/____\/\\\\\\\\\\\_______\////\\\_______________\/\\\________/\\\______\//\\\_     
    _\/\\\/////////____\/\\\//////\\\____\/\\\///////___________\////\\\____________\/\\\_______\/\\\_______\/\\\_    
     _\/\\\_____________\/\\\____\//\\\___\/\\\_____________________\////\\\_________\/\\\_______\//\\\______/\\\__   
      _\/\\\_____________\/\\\_____\//\\\__\/\\\______________/\\\______\//\\\________\/\\\________\///\\\__/\\\____  
       _\/\\\_____________\/\\\______\//\\\_\/\\\\\\\\\\\\\\\_\///\\\\\\\\\\\/_________\/\\\__________\///\\\\\/_____ 
        _\///______________\///________\///__\///////////////____\///////////___________\///_____________\/////_______

User Authentication, Authorization & Web/Application Security Framework

Java spring-boot-starter rapid development modules, built atop the Java Spring-Security framework.

Starter ModuleDescription
Nostrwindow.nostr capability for web browsers (NIP-07)
Azure OAuth2Microsoft Entra ID, OAuth2+JWT, Single Sign-On
LDAPLightweight Directory Access Protocol
StandaloneCustom/Locally provided

Features:

<hr style="border:2px solid gray">

Project Layout/Structure

$ tree -L 2
|-- autoconfigure (module)
|   |-- azure
|   |-- core
|   |-- h2db
|   |-- jpa
|   |-- ldap
|   |-- mysql
|   |-- nostr
|   |-- web
|-- lib          (module)
|   |-- azure
|   |-- core
|   |-- h2db
|   |-- jpa
|   |-- ldap
|   |-- mysql
|   |-- nostr
|   |-- web
|-- sample-apps  (module)
|   |-- azure
|   |-- jpa
|   |-- ldap
|   |-- nostr
|-- starter      (module)
    |-- azure
    |-- core
    |-- h2db
    |-- jpa
    |-- ldap
    |-- mysql
    |-- nostr
    |-- web 

Module descriptions

<hr style="border:2px solid gray">

Requirements

$ java -version
openjdk version "21.0.2" 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-58)
OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing)
$ mvn -version
Apache Maven 4.0.0-beta-3 (e92f645c2749eb2a4f5a8843cf01e7441e4b559f)
Maven home: ~/.sdkman/candidates/maven/current
Java version: 21.0.2, vendor: Oracle Corporation, runtime: /home/nick/.sdkman/candidates/java/21.0.2-open
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-126-generic", arch: "amd64", family: "unix"
<hr style="border:2px solid gray">

Build

From project root directory:

$ mvn clean install
<hr style="border:2px solid gray">

Configure & Run Sample Applications

Standalone

LDAP

AzureAD

<hr style="border:2px solid gray">

Presto Spring-Boot Starter Tutorials

presto-azure-spring-boot-starter

<hr style="border:2px solid gray">

DB console:

localhost:8080/h2-console/

user: sa
password: // blank

Display all framework table contents:

SELECT * FROM USERS;
SELECT * FROM APPUSER_AUTHUSER;
SELECT * FROM APPUSER;
SELECT * FROM AUTHORITIES;
<hr style="border:2px solid gray">

Automated testing

Build and run unit-tests

$ mvn test

unit-test code-coverage reports can now be displayed by opening browser file:

target/site/jacoco/index.html

note: for complete code-coverage results, use mvn verify command below


Build and run both integration-tests and unit-tests

$ mvn verify -P [jpa|ldap|adoauth2]

complete (integration-test and unit-test) code-coverage reports can now be displayed by opening browser file:

target/site/jacoco/index.html