Refactor auth middleware and update service config usage

- Remove redundant comments and docstrings in auth_middleware.py - Use
TOKEN_SERVICE_URL env variable for AuthMiddleware - Fix sensor service
proxy path in main.py - Use datetime.now() for request_stats start_time
This commit is contained in:
rafaeldpsilva
2025-10-08 14:04:50 +01:00
parent 863e0161b0
commit 8ff20935fc
2 changed files with 10 additions and 20 deletions

View File

@@ -58,12 +58,7 @@ app.add_middleware(
allow_headers=["*"],
)
# Service registry and load balancer
service_registry = ServiceRegistry()
load_balancer = LoadBalancer(service_registry)
auth_middleware = AuthMiddleware()
# Service configuration
SERVICES = {
"token-service": ServiceConfig(
name="token-service",
@@ -85,20 +80,23 @@ SERVICES = {
)
}
# Request statistics
# Service registry and load balancer
service_registry = ServiceRegistry()
load_balancer = LoadBalancer(service_registry)
auth_middleware = AuthMiddleware(os.getenv("TOKEN_SERVICE_URL", "http://token-service:8001"))
request_stats = {
"total_requests": 0,
"successful_requests": 0,
"failed_requests": 0,
"service_requests": {service: 0 for service in SERVICES.keys()},
"start_time": datetime.utcnow()
"start_time": datetime.now()
}
@app.get("/health", response_model=HealthResponse)
async def gateway_health_check():
"""Gateway health check endpoint"""
try:
# Check all services
service_health = await service_registry.get_all_service_health()
healthy_services = sum(1 for status in service_health.values() if status.get("status") == "healthy")
@@ -189,7 +187,7 @@ async def iot_control_service_proxy(request: Request, path: str):
@app.api_route("/api/v1/sensors/{path:path}", methods=["GET", "POST", "PUT", "DELETE"])
async def sensor_service_proxy(request: Request, path: str):
"""Proxy requests to sensor service"""
return await proxy_request(request, "sensor-service", f"/{path}")
return await proxy_request(request, "sensor-service", f"/sensors/{path}")
# Data Ingestion Service Routes (SA4CPS FTP Monitoring)
@app.api_route("/api/v1/ingestion/{path:path}", methods=["GET", "POST", "PUT", "DELETE"])
@@ -290,7 +288,7 @@ async def proxy_request(request: Request, service_name: str, path: str):
# Check authentication if required
if service_config.auth_required:
await auth_middleware.verify_token(request)
decoded = await auth_middleware.verify_token(request)
# Get healthy service instance
service_url = await load_balancer.get_service_url(service_name)