How tejeshkb2144/one-enterprise-cloud works
This is a Spring Boot microservice template combining authentication, tenant-aware security, and reusable REST CRUD infrastructure, with an organization-location feature present in the source tree. The documented CRUD path is an HTTP request through a feature controller to generic service logic and a JPA repository; authentication has login, registration, refresh, and OAuth2 flows. Relationships below rely on the README’s architecture and workflow descriptions; source excerpts were not provided, so links specific to the location implementation are left unverified.
Main entry points: AuthController.java Auth controller · AuthService.java Auth service · CustomOAuth2UserService.java OAuth2 user mapping · OAuth2AuthenticationSuccessHandler.java OAuth2 success handler
Components 24
Authentication and security
- Auth controller
src/main/java/com/example/microservice/auth/controller/AuthController.java - Auth service
src/main/java/com/example/microservice/auth/service/AuthService.java - Security chain
src/main/java/com/example/microservice/auth/security/SecurityConfig.java - JWT filter
src/main/java/com/example/microservice/auth/security/jwt/JwtAuthenticationFilter.java - JWT provider
src/main/java/com/example/microservice/auth/security/jwt/JwtTokenProvider.java - OAuth2 user mapping
src/main/java/com/example/microservice/auth/security/oauth2/CustomOAuth2UserService.java - OAuth2 success handler
src/main/java/com/example/microservice/auth/security/oauth2/OAuth2AuthenticationSuccessHandler.java
CRUD and domain features
- Generic CRUD controller
src/main/java/com/example/microservice/common/abstracts/AbstractController.java - Generic CRUD service
src/main/java/com/example/microservice/common/abstracts/AbstractService.java - Location controller
src/main/java/com/example/microservice/organizations/location/controller/LocationController.java - Location service
src/main/java/com/example/microservice/organizations/location/service/LocationService.java - Location repository
src/main/java/com/example/microservice/organizations/location/repository/LocationRepository.java - Location entity
src/main/java/com/example/microservice/organizations/location/entity/LocationEntity.java - Audited base entity
src/main/java/com/example/microservice/common/abstracts/BaseEntity.java
Shared application infrastructure
- Application entry
src/main/java/com/example/microservice/BaseMicroserviceApplication.java - API response envelopes
src/main/java/com/example/microservice/common/response/ApiResponse.java - Exception handling
src/main/java/com/example/microservice/common/exception/GlobalExceptionHandler.java - Application configuration
src/main/java/com/example/microservice/config/AppConfig.java
Tenant and persistence
- Tenant filter
src/main/java/com/example/microservice/common/tenant/TenantFilter.java - Tenant context
src/main/java/com/example/microservice/common/tenant/TenantContext.java - Tenant resolver
src/main/java/com/example/microservice/config/TenantIdentifierResolver.java - JPA database
src/main/resources/application.yml
Other components
- API client
- OAuth2 provider
Connections 18
- API client → Auth controller: calls auth endpoints
README.md - Auth controller → Auth service: delegates auth
README.md - Auth service → JWT provider: issues tokens
README.md - API client → Generic CRUD controller: requests CRUD
README.md - Generic CRUD controller → Generic CRUD service: delegates CRUD
README.md - Generic CRUD service → JPA database: uses JPA persistence
README.md - API client → Location controller: requests locations
- Location controller → Location service: delegates operations
- Location service → Location repository: uses repository
- Location repository → JPA database: persists records
- Location entity → Audited base entity: extends auditing
- Security chain → JWT filter: configures filter
README.md - OAuth2 provider → OAuth2 user mapping: authenticates user
- OAuth2 user mapping → OAuth2 success handler: maps login user
- OAuth2 success handler → JWT provider: issues JWT
README.md - Tenant filter → Tenant context: sets tenant
README.md - Tenant resolver → Tenant context: resolves tenant
README.md - Application entry → Application configuration: starts application