# workingonxyz-commits/auth-app-backend2 architecture

> Architecture diagram of the GitHub repository workingonxyz-commits/auth-app-backend2, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/workingonxyz-commits/auth-app-backend2
- Repository: https://github.com/workingonxyz-commits/auth-app-backend2

## Overview

This is a Spring backend for user management and JWT-based authentication. Clients register or manage users, log in for an access token and refresh-token cookie, refresh access tokens, and log out to revoke the refresh token. Bearer access tokens are validated on requests by a security filter. The tree also shows user and refresh-token persistence layers. README content is absent, and several implementation/configuration files were not sampled, so uncertain wiring to persistence and security configuration is omitted.

Main entry points: [`src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java`](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java) (Auth service), [`src/main/java/com/substring/auth/auth_app_backend/security/JwtAuthenticationFilter.java`](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/security/JwtAuthenticationFilter.java) (JWT filter), [`src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java`](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java) (Auth endpoints), [`src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java`](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java) (User endpoints)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_auth_controller["Auth endpoints"]
  node_user_controller["User endpoints"]
end

subgraph group_auth["Authentication"]
  node_auth_service["Auth service"]
  node_jwt_filter["JWT filter"]
  node_jwt_service["JWT service<br/>[JwtService.java]"]
  node_refresh_service["Refresh tokens"]
  node_user_details["User details"]
  node_security_config["Security config"]
end

subgraph group_users["User Management"]
  node_user_service["User service"]
end

subgraph group_storage["Persistence"]
  node_user_repository["User repository"]
  node_refresh_repository["Refresh repository"]
  node_database[("Database")]
end

node_client(("API client"))

node_client -->|"sends auth requests"| node_auth_controller
node_client -->|"sends user requests"| node_user_controller
node_auth_controller -->|"calls auth operations"| node_auth_service
node_user_controller -->|"calls user operations"| node_user_service
node_auth_service -->|"registers user"| node_user_service
node_auth_service -->|"generates access token"| node_jwt_service
node_auth_service -->|"manages refresh token"| node_refresh_service
node_jwt_filter -->|"validates and parses"| node_jwt_service
node_jwt_filter -->|"loads user details"| node_user_details
node_user_details -->|"looks up email"| node_user_repository

click node_auth_controller "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java"
click node_user_controller "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java"
click node_auth_service "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java"
click node_jwt_filter "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/security/JwtAuthenticationFilter.java"
click node_jwt_service "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/JwtService.java"
click node_refresh_service "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/RefreshTokenService.java"
click node_user_details "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/CustomUserDetailsService.java"
click node_security_config "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/config/SecurityConfig.java"
click node_user_service "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java"
click node_user_repository "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java"
click node_refresh_repository "https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/RefreshTokenRepository.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth_controller,node_user_controller,node_client toneBlue
class node_auth_service,node_jwt_filter,node_jwt_service,node_refresh_service,node_user_details,node_security_config toneAmber
class node_user_service toneMint
class node_user_repository,node_refresh_repository,node_database toneRose
```

## Components

### HTTP API

- [Auth endpoints](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java): `src/main/java/com/substring/auth/auth_app_backend/controllers/AuthController.java`
- [User endpoints](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java): `src/main/java/com/substring/auth/auth_app_backend/controllers/UserController.java`

### Authentication

- [Auth service](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java): `src/main/java/com/substring/auth/auth_app_backend/services/impl/AuthServiceImpl.java`
- [JWT filter](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/security/JwtAuthenticationFilter.java): `src/main/java/com/substring/auth/auth_app_backend/security/JwtAuthenticationFilter.java`
- [JWT service](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/JwtService.java): `src/main/java/com/substring/auth/auth_app_backend/services/impl/JwtService.java`
- [Refresh tokens](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/RefreshTokenService.java): `src/main/java/com/substring/auth/auth_app_backend/services/RefreshTokenService.java`
- [User details](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/CustomUserDetailsService.java): `src/main/java/com/substring/auth/auth_app_backend/services/impl/CustomUserDetailsService.java`
- [Security config](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/config/SecurityConfig.java): `src/main/java/com/substring/auth/auth_app_backend/config/SecurityConfig.java`

### User Management

- [User service](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java): `src/main/java/com/substring/auth/auth_app_backend/services/impl/UserServiceImpl.java`

### Persistence

- [User repository](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java): `src/main/java/com/substring/auth/auth_app_backend/repositories/UserRepository.java`
- [Refresh repository](https://github.com/workingonxyz-commits/auth-app-backend2/blob/main/src/main/java/com/substring/auth/auth_app_backend/repositories/RefreshTokenRepository.java): `src/main/java/com/substring/auth/auth_app_backend/repositories/RefreshTokenRepository.java`
- **Database**

### Other components

- **API client**

## Connections

- API client → Auth endpoints: sends auth requests
- API client → User endpoints: sends user requests
- Auth endpoints → Auth service: calls auth operations
- User endpoints → User service: calls user operations
- Auth service → User service: registers user
- Auth service → JWT service: generates access token
- Auth service → Refresh tokens: manages refresh token
- JWT filter → JWT service: validates and parses
- JWT filter → User details: loads user details
- User details → User repository: looks up email
