{"id":22120849,"url":"https://github.com/metheax/methea-framework","last_synced_at":"2025-07-25T12:33:56.513Z","repository":{"id":40381152,"uuid":"255086480","full_name":"MetheaX/Methea-Framework","owner":"MetheaX","description":"Open Source Framework for authentication and access management","archived":false,"fork":false,"pushed_at":"2024-02-16T02:49:08.000Z","size":11276,"stargazers_count":8,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-02-16T03:33:40.933Z","etag":null,"topics":["authentication","freemarker","java","methea-framework","spring-boot","web-ui-framework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MetheaX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-04-12T13:18:31.000Z","updated_at":"2023-03-03T14:36:01.000Z","dependencies_parsed_at":"2023-01-29T06:15:36.276Z","dependency_job_id":"50288993-bc6e-49fa-bc5e-4e94319307ef","html_url":"https://github.com/MetheaX/Methea-Framework","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetheaX%2FMethea-Framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetheaX%2FMethea-Framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetheaX%2FMethea-Framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MetheaX%2FMethea-Framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MetheaX","download_url":"https://codeload.github.com/MetheaX/Methea-Framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227577727,"owners_count":17788714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","freemarker","java","methea-framework","spring-boot","web-ui-framework"],"created_at":"2024-12-01T14:30:27.649Z","updated_at":"2024-12-01T14:30:28.434Z","avatar_url":"https://github.com/MetheaX.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Methea-Framework\nMethea is a framework providing authentication and access management for your `Spring Boot Application`\nwith minimum configuration, specifically for `RESTful Webservice` with `JWE`. No need to deal with users and permission stuffs.\n\nMethea also provide [UI Management Tool](https://github.com/MetheaX/methea-management) which is allows you to control \u0026 configure your system. (Under Developement)\n\nMethea build on top of following frameworks:\n1. [Spring Boot](https://spring.io/projects/spring-boot)\n2. [JWT](https://jwt.io/)\n3. [JWE]()\n\n# Building from sources\n\nPre-requires\n * Java 17 or above JDK as JAVA_HOME\n * Maven as its build tool.\n * Keystore generator\n\nHow to build\n * Simply by checkout source code from our repository and using maven command `mvn clean install` to build framework.\n\nSupport with `Spring Boot 3.1.0` and later version of Spring Boot.\n\n# Overview Structure\n* Account - refer to company  or organization\n* Group - refer to department/team in organization\n* JWTConfig - use for config JWT properties, such as expire datetime\n* Permission - Bind with roles \u0026 resources\n* Public Permission - Public resources must map into this table\n* Resource - All endpoint in this systems\n* Role - User role\n* User - User information\n# Usages\n### I. Integration into webservice application\n1.  Adding dependency to your spring boot application\n\n\t    \u003cdependency\u003e\n            \u003cgroupId\u003eio.github.metheax\u003c/groupId\u003e\n            \u003cartifactId\u003eauth\u003c/artifactId\u003e\n            \u003cversion\u003e0.0.1-SNAPSHOT\u003c/version\u003e\n        \u003c/dependency\u003e\n\n2. Config datasource of your choice\n    * Please note that currently, we're testing only with [PostgreSQL](https://www.postgresql.org/)\n        \n3. Adding spring-boot components scan\n\n    \t @SpringBootApplication(scanBasePackages = {\"io.github.metheax\", \"your-reverse-domain\"})\n         @EnableJpaRepositories(basePackages = {\"io.github.metheax\", \"your-reverse-domain\"})\n         @EntityScan(basePackages = {\"io.github.metheax\", \"your-reverse-domain\"})\n         public class MetheaHostApplication {\n            public static void main(String[] args) {\n                SpringApplication.run(WebServiceApplication.class, args);\n            }\n         }`\n4. Load pre-define data into your database\n\n    ```sql\n    INSERT INTO public.core_account (account_id, created_date_time, created_user, status, updated_date_time, updated_user, account_address, account_code, account_email, account_name, account_name_oth) VALUES ('68bcf443-1b0c-49ff-877e-8650477383e8', '2021-06-13 10:57:36.711763', 'System', 'A', '2021-07-10 15:18:42.808053', 'admin', 'Phnom Penh, Cambodia.', 'METHEA', 'methea@localhost.com', 'Methea LLC.', 'មេធា');\n    INSERT INTO public.core_group (group_id, created_date_time, created_user, status, updated_date_time, updated_user, group_code, group_name, group_name_oth, remarks, account_id) VALUES ('366a7028-b623-49b0-8988-d711647051a5', '2021-06-13 10:57:36.729797', 'System', 'A', '2021-06-13 10:57:36.729797', 'System', 'M_SYS_ADMIN', 'System Admin', 'អេតមីនប្រព័ន្ធ', null, '68bcf443-1b0c-49ff-877e-8650477383e8');\n    INSERT INTO public.core_resource (resource_id, created_date_time, created_user, status, updated_date_time, updated_user, resource_name) VALUES ('ad5ea55c-547a-4537-8797-e3714c64d8a3', '2021-06-13 10:57:36.748761', 'System', 'A', '2021-06-13 10:57:36.748761', 'System', '/**');\n    INSERT INTO public.core_role (role_id, created_date_time, created_user, status, updated_date_time, updated_user, role_code, name, name_oth) VALUES ('33525a14-0ebc-4a3e-ada5-bd3ef94c9495', '2021-06-13 10:57:36.742761', 'System', 'A', '2021-06-13 10:57:37.016415', 'System', 'ROLE_ADMIN', 'Admin', 'អេតមីន');\n    INSERT INTO public.core_user (user_id, created_date_time, created_user, status, updated_date_time, updated_user, email, first_name, first_name_oth, frc_usr_rst_pwd, identity_code, last_name, last_name_oth, password, phone, username, group_id) VALUES ('c6eff227-d496-486c-a72c-db2f92e06faa', '2021-06-13 10:57:37.015455', 'System', 'A', '2021-06-13 10:57:37.015455', 'System', 'admin@localhost.com', 'Admin', 'អេតមីន', 'N', '639691', 'Admin', 'អេតមីន', 'Gp/lBVv1VTKk3DLGiENtX4Ow1xLEUqIDRBpa+zuTJWT3IIqfC4m0SB1tpVDo1+BQHFnY90XmvbJE1JAMDfRSmA$vkDevdjMM9v+/BonOi6HX/+v3Syh5mrSMXssz5707LSlOrCiIj3O7Q50bg7mLeCl6GYKhad7GGQi7CKvP1KqnbvtS2eZMFevVHsYHsQD2UeMQqiP7nAQ1z12ZHMNc5QckXZgUPMqetTzhJMzDduJ9+nOrC3HlqSo43VoMg0k+EA', '+85569639691', 'admin', '366a7028-b623-49b0-8988-d711647051a5');\n    INSERT INTO public.core_user_roles (user_id, role_id) VALUES ('c6eff227-d496-486c-a72c-db2f92e06faa', '33525a14-0ebc-4a3e-ada5-bd3ef94c9495');\n    INSERT INTO public.core_permission (permission_id, created_date_time, created_user, status, updated_date_time, updated_user, resource_id, role_id) VALUES ('bdee9930-cbde-4e62-96d8-91df821a698b', '2021-06-13 10:57:36.763762', 'System', 'A', '2021-06-13 10:57:36.763762', 'System', 'ad5ea55c-547a-4537-8797-e3714c64d8a3', '33525a14-0ebc-4a3e-ada5-bd3ef94c9495');\n    ```\n5. Generate keystore for access token and refresh token\n    * We recommend using [KeyStore Explorer](https://keystore-explorer.org/) to generate key store\n    * Place keystore under `resources` directory as `resources/keystore`\n    * Use below configuration in your `application.properties` or `application.yml`\n    ```yaml\n   keystore-token-file= classpath:keystore/test.pfx\n    keystore-token-password= 12345\n    keystore-token-alias= test\n    keystore-key-token-password= 12345\n    \n    keystore-refresh-token-file= classpath:keystore/test.pfx\n    keystore-refresh-token-password= 12345\n    keystore-refresh-token-alias= test\n    keystore-key-refresh-token-password= 12345\n    ```\n\n6. Sample project\n    * Still have doubt on how to integrate, here is our [sample project](https://github.com/MetheaX/Methea-Sample-Webservice)\n# Support\nIf you encounter any issues regarding this project, please create a GitHub Issue. Email me `kuylim.tith@outlook.com` If you need special support or customize for your organization.  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetheax%2Fmethea-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetheax%2Fmethea-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetheax%2Fmethea-framework/lists"}