How youssefboualy913/user_management_api works
This is a Spring-based user-management API. Clients register users and, after HTTP Basic authentication, administrators can list users or fetch one by ID. Controllers delegate to a user service, which hashes registration passwords and uses a JPA repository; the security configuration loads accounts by email and enforces roles. The graph also shows persistence and startup admin initialization. DTOs, mapping, and exception-handling modules exist in the tree, but their runtime relationships are not established by the available excerpts.
Main entry points: UserRepository.java User repository · SecurityConfig.java Authentication and authorization · User.java User account · DataInitializer.java Admin account initializer
Components 17
API
- Registration endpoint
src/main/java/com/usermanagement/controller/AuthController.java - Admin user endpoints
src/main/java/com/usermanagement/controller/UserController.java - Request and response DTOs
src/main/java/com/usermanagement/dto - API error handling
src/main/java/com/usermanagement/exception
User domain
- User service
src/main/java/com/usermanagement/service/UserService.java - User account
src/main/java/com/usermanagement/entity/User.java - Account roles
src/main/java/com/usermanagement/entity/Role.java - User repository
src/main/java/com/usermanagement/repository/UserRepository.java - User mapper
src/main/java/com/usermanagement/mapper/UserMapper.java
Security and persistence
- Configured database
- Authentication and authorization
src/main/java/com/usermanagement/config/SecurityConfig.java - Admin account initializer
src/main/java/com/usermanagement/config/DataInitializer.java - JPA persistence setup
src/main/java/com/usermanagement/config/PersistenceConfig.java - Web configuration
src/main/java/com/usermanagement/config/WebConfig.java - Root configuration
src/main/java/com/usermanagement/config/RootConfig.java - Servlet initializer
src/main/java/com/usermanagement/config/WebAppInitializer.java
Other components
- API client
Connections 19
- API client → Registration endpoint: registers via
src/main/java/com/usermanagement/controller/AuthController.java - API client → Admin user endpoints: requests users
src/main/java/com/usermanagement/controller/UserController.java - Registration endpoint → User service: creates user
src/main/java/com/usermanagement/controller/AuthController.java - Admin user endpoints → User service: queries users
src/main/java/com/usermanagement/controller/UserController.java - User service → User repository: saves and queries
src/main/java/com/usermanagement/service/UserService.java - User repository → User account: persists entities
src/main/java/com/usermanagement/repository/UserRepository.java - User account → Account roles: has role
src/main/java/com/usermanagement/entity/User.java - Authentication and authorization → User repository: loads accounts
src/main/java/com/usermanagement/config/SecurityConfig.java - Authentication and authorization → User account: reads account fields
src/main/java/com/usermanagement/config/SecurityConfig.java - Authentication and authorization → Admin user endpoints: protects requests
src/main/java/com/usermanagement/config/SecurityConfig.java - Admin account initializer → User repository: checks and saves
src/main/java/com/usermanagement/config/DataInitializer.java - Admin account initializer → User account: creates admin
src/main/java/com/usermanagement/config/DataInitializer.java - Admin account initializer → Account roles: assigns role
src/main/java/com/usermanagement/config/DataInitializer.java - User repository → Configured database: uses JPA store
- JPA persistence setup → Configured database: configures datasource
src/main/java/com/usermanagement/config/PersistenceConfig.java - Servlet initializer → Root configuration: registers root
src/main/java/com/usermanagement/config/WebAppInitializer.java - Servlet initializer → Web configuration: registers web
src/main/java/com/usermanagement/config/WebAppInitializer.java - Root configuration → JPA persistence setup: imports config
src/main/java/com/usermanagement/config/RootConfig.java - Root configuration → Authentication and authorization: imports config
src/main/java/com/usermanagement/config/RootConfig.java