How aryaraj76438/authservice works
AuthService is a Spring authentication backend. The principal workflow is account registration, email verification, login, and session renewal or revocation; separate workflows support password reset and protected-request authentication. README documents PostgreSQL persistence, Redis security state, and asynchronous retryable email delivery. The tree and excerpts establish controller/service and several security interactions; unsampled service implementations are represented only at their existing enclosing directory, with wiring limited to documented behavior.
Main entry points: AuthService.java Authentication workflows · AuthController.java Auth endpoints · EmailService.java Email composition · UserRepository.java User records
Components 22
API and flow
- Auth endpoints
src/main/java/com/authservice/authservice/controller/AuthController.java - Authentication workflows
src/main/java/com/authservice/authservice/service/AuthService.java - Password reset
src/main/java/com/authservice/authservice/service - Refresh cookies
src/main/java/com/authservice/authservice/service/CookieService.java - Error responses
src/main/java/com/authservice/authservice/exception/GlobalExceptionHandler.java
Identity and tokens
- JWT issuance
src/main/java/com/authservice/authservice/security/JwtService.java - User lookup
src/main/java/com/authservice/authservice/security/CustomUserDetailsService.java
Request security
- JWT authentication filter
src/main/java/com/authservice/authservice/security/JwtAuthenticationFilter.java - Rate limit filter
src/main/java/com/authservice/authservice/security/RateLimitFilter.java - Rate limit checks
src/main/java/com/authservice/authservice/service/RateLimitService.java
Email delivery
- Email composition
src/main/java/com/authservice/authservice/service/EmailService.java - Outbox queueing
src/main/java/com/authservice/authservice/service/EmailOutboxService.java - Outbox retries
src/main/java/com/authservice/authservice/service/EmailOutboxProcessor.java
Persistence and state
- User records
src/main/java/com/authservice/authservice/repository/UserRepository.java - Verification tokens
src/main/java/com/authservice/authservice/repository/VerificationTokenRepository.java - Refresh sessions
src/main/java/com/authservice/authservice/repository/RefreshTokenRepository.java - Outbox records
src/main/java/com/authservice/authservice/repository/EmailOutboxRepository.java - Redis access
src/main/java/com/authservice/authservice/service/RedisService.java
Other components
- Client
- PostgreSQL
- Redis
- SMTP provider
Connections 26
- Client → Auth endpoints: sends requests
- Auth endpoints → Authentication workflows: invokes auth
- Auth endpoints → Password reset: invokes reset
- Auth endpoints → Refresh cookies: handles cookies
- Authentication workflows → User records: reads/writes users
- Authentication workflows → Verification tokens: manages verification
- Authentication workflows → Refresh sessions: manages sessions
- Authentication workflows → Redis access: checks login state
- Authentication workflows → JWT issuance: issues access token
- Authentication workflows → Email composition: requests email
- Password reset → Email composition: requests reset email
- JWT authentication filter → JWT issuance: validates token
- JWT authentication filter → User lookup: loads identity
- User lookup → User records: finds user
- Rate limit filter → Rate limit checks: checks quota
- Rate limit checks → Redis access: updates counters
- Email composition → Outbox queueing: queues message
- Outbox queueing → Outbox records: persists message
- Outbox retries → Outbox records: loads pending mail
- Outbox retries → SMTP provider: delivers email
- User records → PostgreSQL: persists users
- Verification tokens → PostgreSQL: persists tokens
- Refresh sessions → PostgreSQL: persists sessions
- Outbox records → PostgreSQL: persists queue
- Redis access → Redis: reads/writes state
- Auth endpoints → Error responses: errors handled by