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.
// 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.
# 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
Configure the datasource of your choice in your Spring Boot application. Methea is currently tested with PostgreSQL.
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.
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 (/**).
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.
Custom support
For organization‑specific customization or dedicated support, you can reach the maintainer directly via email.
Email: kuylim.tith@outlook.com