Authentication & Access Management

Plug‑in Methea to secure your Spring Boot APIs.

Methea is an open source framework providing authentication and access management for your Spring Boot RESTful web services using JWT/JWE—so you don’t have to reinvent users, roles, and permissions.

Spring Boot 3.1+ JWT & JWE RESTful APIs PostgreSQL‑ready
Methea ships with a UI management tool (under development) so you can configure accounts, groups, roles, and permissions visually.
Spring Boot integration
// pom.xml
<dependency>
  <groupId>io.github.metheax</groupId>
  <artifactId>auth</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</dependency>

// Application bootstrap
@SpringBootApplication(
  scanBasePackages = {"io.github.metheax", "your.reverse.domain"}
)
@EnableJpaRepositories(
  basePackages = {"io.github.metheax", "your.reverse.domain"}
)
@EntityScan(
  basePackages = {"io.github.metheax", "your.reverse.domain"}
)
public class MetheaHostApplication {
  public static void main(String[] args) {
    SpringApplication.run(WebServiceApplication.class, args);
  }
}

Why Methea?

Methea focuses on one thing: making authentication and access management for RESTful Spring Boot services simple, consistent, and production‑ready.

Minimal configuration

Drop in the dependency, configure your datasource, and let Methea handle users, roles, permissions, and JWT/JWE token management.

  • Opinionated defaults
  • Spring Boot 3.1+ compatible
  • Java 17+ baseline

Rich access model

Model your organization with accounts, groups, roles, resources, and permissions—without building the plumbing yourself.

  • Account & group hierarchy
  • Role‑based access control
  • Public vs protected resources

UI management tool

A dedicated UI (under development) lets you manage users, permissions, and configuration visually, on top of the same framework.

  • Centralized configuration
  • Admin‑friendly UX
  • Backed by Methea core

Core domain model

Methea ships with a well‑defined domain model that maps directly to database tables and entities, so you can focus on your business logic.

Accounts & groups

Represent companies or organizations and their internal departments/teams.

  • Account – company/organization
  • Group – department or team

Users & roles

Attach users to groups and roles to define what they can access.

  • User – identity & credentials
  • Role – user role (e.g. ROLE_ADMIN)

Resources & permissions

Map API endpoints to resources and bind them to roles via permissions.

  • Resource – endpoint pattern (e.g. /**)
  • Permission – role ↔ resource binding
  • Public permission – public resources

Getting started

Build Methea from source or consume it as a dependency in your Spring Boot application. Java 17+ and Maven are required.

Build from source
# Pre‑requisites
- Java 17+ (JDK) configured as JAVA_HOME
- Maven

# Clone & build
git clone https://github.com/MetheaX/Methea-Framework.git
cd Methea-Framework
mvn clean install
Database

Configure the datasource of your choice in your Spring Boot application. Methea is currently tested with PostgreSQL.

Keystore configuration

Methea uses keystores for access and refresh tokens. You can generate them using tools like KeyStore Explorer and place them under src/main/resources/keystore.

# application.properties / application.yml
keystore-token-file=classpath:keystore/test.pfx
keystore-token-password=12345
keystore-token-alias=test
keystore-key-token-password=12345

keystore-refresh-token-file=classpath:keystore/test.pfx
keystore-refresh-token-password=12345
keystore-refresh-token-alias=test
keystore-key-refresh-token-password=12345

Usage & bootstrap data

After wiring Methea into your Spring Boot application, you can preload core data such as the default account, admin group, admin user, and permissions.

Pre‑defined data

The repository provides sample SQL inserts for:

  • core_account
  • core_group
  • core_resource
  • core_role
  • core_user
  • core_user_roles
  • core_permission

These create a default admin user and grant it full access to all resources (/**).

Sample project

If you’re unsure how to integrate Methea into your own service, the repository includes a sample project that demonstrates:

  • Dependency setup
  • Spring Boot configuration
  • Database & keystore wiring
  • Authentication & authorization flow

Support & contributions

Methea is open source and welcomes feedback, issues, and feature requests from the community.

Issues & bugs

If you encounter any issues, please open a GitHub Issue in the Methea Framework repository with as much detail as possible.

Bug reports Feature requests Documentation

Custom support

For organization‑specific customization or dedicated support, you can reach the maintainer directly via email.

Email: kuylim.tith@outlook.com