Skip to content

Authentication and RBAC ​

MethodPathPurpose
POST/api/v1/auth/loginIssue access and refresh tokens
POST/api/v1/auth/registerRegister without a Bearer token
POST/api/v1/auth/refreshRotate tokens
POST/api/v1/auth/logoutRevoke a refresh token
GET/api/v1/auth/meCurrent user, roles, and permissions
GET/POST/api/v1/usersList/create users
GET/PUT/DELETE/api/v1/users/{id}Read/update/delete a user
GET/POST/api/v1/rolesList/create roles
GET/PUT/DELETE/api/v1/roles/{id}Read/update/delete a role
GET/api/v1/permissionsPermission catalog
GET/api/v1/menusCurrent user's menu tree

Send access tokens as Authorization: Bearer <token>. Refresh tokens are only for refresh and logout operations.

The JWT filter explicitly accepts only claims with type=access; a refresh token cannot authenticate a resource request. Spring Security uses the first matching authorization rule, so public matchers remain before anyRequest().authenticated(). Authentication and access-denied handlers return the same API envelope for HTTP 401 and 403.

analytics:view and data:view protect operating-data endpoints. GET /api/v1/menus intentionally requires login but no management permission because it returns the current user's own navigation; /menus/tree and menu CRUD use menu:*.

Released under the MIT License.