How shanks216/virtual-stock-trading-app works
This Spring Boot backend exposes registration and login, stores user credentials through a JPA repository, and issues JWTs for stateless authentication. For protected requests, the security filter extracts and validates a bearer token, loads the user, and sets the Spring Security context before request handling. The README also documents CORS support and secure REST APIs. No trading, portfolio, or transaction workflow is implemented in the listed source. Database configuration and CORS implementation details are not shown in the sampled source.
Main entry points: AuthService.java Auth service · AuthController.java Auth controller · SecurityConfig.java Security filter chain · UserRepository.java User repository
Components 16
Authentication API
- Auth controller
src/main/java/com/virtualtrader/backend/controller/AuthController.java - Login and registration DTOs
src/main/java/com/virtualtrader/backend/dto/LoginRequest.java - Token response DTO
src/main/java/com/virtualtrader/backend/dto/AuthResponse.java
Identity and Security
- Auth service
src/main/java/com/virtualtrader/backend/service/AuthService.java - BCrypt encoder
src/main/java/com/virtualtrader/backend/config/ApplicationConfig.java - JWT service
src/main/java/com/virtualtrader/backend/security/JwtService.java - JWT filter
src/main/java/com/virtualtrader/backend/security/JwtAuthenticationFilter.java - User details service
src/main/java/com/virtualtrader/backend/config/ApplicationConfig.java - Authentication provider
src/main/java/com/virtualtrader/backend/config/ApplicationConfig.java - Security filter chain
src/main/java/com/virtualtrader/backend/config/SecurityConfig.java - CORS configuration
src/main/java/com/virtualtrader/backend/config/CorsConfig.java
User Persistence
- User repository
src/main/java/com/virtualtrader/backend/repository/UserRepository.java - User entity
src/main/java/com/virtualtrader/backend/entity/User.java
Other components
- Frontend client
- JPA database
- Spring Boot application
src/main/java/com/virtualtrader/backend/BackendApplication.java
Connections 19
- Frontend client → Auth controller: submits auth requests
- Auth controller → Login and registration DTOs: accepts request models
- Auth controller → Auth service: delegates authentication
- Auth service → Token response DTO: returns token data
- Auth controller → Frontend client: returns auth response
- Auth service → User repository: looks up and saves users
- Auth service → BCrypt encoder: encodes and checks passwords
- Auth service → JWT service: generates login token
- Security filter chain → JWT filter: registers filter
- Security filter chain → Authentication provider: configures provider
- Security filter chain → CORS configuration: enables CORS support
- JWT filter → JWT service: extracts and validates token
- JWT filter → User details service: loads authenticated user
- User details service → User repository: finds user by name
- Authentication provider → User details service: loads user details
- Authentication provider → BCrypt encoder: checks credentials
- User repository → User entity: maps user records
- User repository → JPA database: reads and writes users
- Spring Boot application → Security filter chain: starts configured app