XSWareAPI is a backend application written in Java using Spring Boot.
It serves as a secure communication layer between the frontend application XSWareWeb
(React, Saldo Planner) and the backend data service XSWareDBService (Kotlin).
The application exposes REST APIs secured with Spring Security and JWT authentication, acting as an API gateway and authorization layer for client–server communication.
- Java 17+ with Spring Boot
- Spring Security with JWT authentication
- Stateless REST API
- Secure communication between frontend and database service
- Environment-based configuration (
local,dev,prod) - Built with Gradle
- Ready for Docker / CI/CD environments
| Layer | Technology |
|---|---|
| Language | Java |
| Framework | Spring Boot |
| Security | Spring Security + JWT |
| Build Tool | Gradle |
| API Style | REST |
| Frontend | XSWareWeb (React – Saldo Planner) |
| Data Layer | XSWareDBService (Kotlin) |
The application uses Spring profiles and environment variables.
No sensitive data is stored in the repository.
dev– development environmentprod– production environment
JWT_SECRET=your-secret-key
JWT_ACCESS_EXP_MS=900000
JWT_REFRESH_EXP_MS=604800000Local development
./gradlew bootRun --args='--spring.profiles.active=local'Build JAR
./gradlew clean buildRun JAR
java -jar build/libs/xsware-api.jar \
--spring.profiles.active=prod- Authentication based on JWT tokens
- Stateless session handling
- Authorization handled by Spring Security filters
- Tokens are validated on every request
- XSWareWeb authenticates the user via XSWareAPI
- XSWareAPI issues a JWT token
- Frontend sends authenticated requests with JWT
- XSWareAPI validates the token
- XSWareAPI communicates with XSWareDBService to fetch or persist data
- Response is returned to the frontend
src/main/java
└── pl.xsware
├── api
├── config
├── domain
└── util
src/main/resources
├── application.yml
├── application-dev.yml
└── application-prod.yml
Run tests using:
./gradlew test- XSWareWeb – React frontend (Saldo Planner)
- XSWareDBService – Kotlin backend service for database access
