SAM (Secure API Manager)
Gestione sicura di API key con Kotlin e Spring Boot
CosβΓ¨ SAM?
SAM Γ¨ unβapplicazione sviluppata in Kotlin con Spring Boot per la gestione sicura di chiavi API. Supporta autenticazione per endpoint protetti, gestione della scadenza delle chiavi e organizzazione per progetto e proprietario.
Caratteristiche
- CRUD completo delle chiavi API
- Autenticazione tramite API key per endpoint sicuri
- Gestione della scadenza delle chiavi
- Organizzazione per progetto e proprietario
- Documentazione API via Swagger/OpenAPI
- Integrazione con InfluxDB (fallback in-memory disponibile)
Tech Stack
- Kotlin
- Spring Boot & Spring Security
- InfluxDB
- Gradle
Requisiti
- Java 17 o superiore
- InfluxDB (opzionale)
- Gradle 7+
Installazione
- Clona il repository
- Configura
application.ymlcon i parametri di InfluxDB - Avvia lβapplicazione:
./gradlew bootRun
Lβapp sarΓ disponibile su http://localhost:5000
API Documentation
Swagger UI Γ¨ disponibile su:
/swagger-ui/index.html
Principali endpoint API
Gestione chiavi
POST /api/keysβ Crea una nuova chiaveGET /api/keysβ Elenca tutte le chiaviGET /api/keys/{id}β Recupera una chiave per IDDELETE /api/keys/{id}β Elimina una chiavePUT /api/keys/{id}/deactivateβ Disattiva una chiave
Endpoint protetti
GET /api/helloβ Esempio di endpoint protetto
Autenticazione
Gli endpoint protetti richiedono unβintestazione con la chiave:
X-API-KEY: la-tua-api-key
Struttura del progetto
src/
βββ main/
β βββ kotlin/com/apikeys/
β β βββ config/ # Configurazioni
β β βββ controller/ # Controller REST
β β βββ dto/ # DTO
β β βββ exception/ # Gestione eccezioni
β β βββ model/ # Modelli di dominio
β β βββ repository/ # Accesso ai dati
β β βββ security/ # Sicurezza
β β βββ service/ # Logica applicativa
β β βββ util/ # Utility
βββ test/
βββ kotlin/ # Test
Come contribuire
- Fork del progetto
git checkout -b feature/nome-featuregit commit -m "Aggiunta nuova feature"git push origin feature/nome-feature- Apri una Pull Request
Distribuito sotto licenza MIT