From 25a871bb317aca095376220ca878931eab596192 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 9 Oct 2025 10:40:46 -0400 Subject: [PATCH] Reupload --- Accept: | 0 GET | 0 Host: | 0 Origin: | 0 User-Agent: | 0 build/ginxsom-fcgi | Bin 232792 -> 232840 bytes build/main.o | Bin 57520 -> 57672 bytes config/local-nginx.conf | 480 +++++++++++++++++++++++----- db/ginxsom.db | Bin 65536 -> 73728 bytes src/main.c | 65 +++- tests/auth_test_tmp/test_upload.txt | 1 + tests/cors_test.sh | 194 +++++++++++ 12 files changed, 655 insertions(+), 85 deletions(-) create mode 100644 Accept: create mode 100644 GET create mode 100644 Host: create mode 100644 Origin: create mode 100644 User-Agent: create mode 100644 tests/auth_test_tmp/test_upload.txt create mode 100755 tests/cors_test.sh diff --git a/Accept: b/Accept: new file mode 100644 index 0000000..e69de29 diff --git a/GET b/GET new file mode 100644 index 0000000..e69de29 diff --git a/Host: b/Host: new file mode 100644 index 0000000..e69de29 diff --git a/Origin: b/Origin: new file mode 100644 index 0000000..e69de29 diff --git a/User-Agent: b/User-Agent: new file mode 100644 index 0000000..e69de29 diff --git a/build/ginxsom-fcgi b/build/ginxsom-fcgi index 09bd5c76fc372ac26e852dc71f14922b3a9e2cb1..a951d8009609696a66fda1a7df3fb882d407c729 100755 GIT binary patch literal 232840 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 MEj>3ZK$z3`U$^IcF#rGn literal 232792 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 diff --git a/build/main.o b/build/main.o index 0b1b3d8626e0ea8cf0d6bf7cbcab1acddeba6c5d..f73f0193dd08ad869b945834956c0ca5d4e33ba2 100644 GIT binary patch delta 6325 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 delta 5966 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 DIA&|f diff --git a/config/local-nginx.conf b/config/local-nginx.conf index f087802..5231a85 100644 --- a/config/local-nginx.conf +++ b/config/local-nginx.conf @@ -18,6 +18,9 @@ http { keepalive_timeout 65; types_hash_max_size 2048; + # Temporary file paths (relative to nginx prefix) + client_body_temp_path tmp/nginx_temp; + # MIME types (local) include mime.types; default_type application/octet-stream; @@ -30,7 +33,19 @@ http { server unix:/tmp/ginxsom-fcgi.sock; } - # Local development server + # Map endpoints to their allowed methods for CORS + map $uri $cors_methods { + default "GET, HEAD, OPTIONS"; + /upload "PUT, HEAD, OPTIONS"; + /mirror "PUT, OPTIONS"; + /report "PUT, OPTIONS"; + /auth "GET, OPTIONS"; + ~^/list/ "GET, OPTIONS"; + ~^/api/ "GET, PUT, OPTIONS"; + ~^/[a-f0-9]\{64\} "GET, HEAD, DELETE, OPTIONS"; + } + + # Local development server - HTTP server { listen 9001; server_name localhost; @@ -41,10 +56,21 @@ http { # Maximum upload size (adjust as needed) client_max_body_size 100M; - # Security headers (applied to all responses) - add_header X-Content-Type-Options nosniff; - add_header X-Frame-Options DENY; - add_header X-XSS-Protection "1; mode=block"; + # Security headers + add_header X-Content-Type-Options nosniff always; + add_header X-Frame-Options DENY always; + add_header X-XSS-Protection "1; mode=block" always; + + # Universal CORS headers for all responses + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; + + # Universal OPTIONS preflight handler + if ($request_method = OPTIONS) { + return 204; + } # 1. SPECIFIC ENDPOINTS (most specific first) @@ -53,6 +79,7 @@ http { if ($request_method !~ ^(PUT|HEAD)$) { return 405; } + fastcgi_pass fastcgi_backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; @@ -73,7 +100,7 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - fastcgi_pass fastcgi_backend; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } # GET /list/ (BUD-02) - List user's blobs @@ -81,6 +108,7 @@ http { if ($request_method !~ ^(GET)$) { return 405; } + fastcgi_pass fastcgi_backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; @@ -101,7 +129,7 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - fastcgi_pass fastcgi_backend; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } # PUT /mirror (BUD-04) - Mirror content @@ -109,6 +137,7 @@ http { if ($request_method !~ ^(PUT)$) { return 405; } + fastcgi_pass fastcgi_backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; @@ -129,35 +158,7 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - fastcgi_pass fastcgi_backend; - } - - # HEAD/PUT /media (BUD-05) - Media operations - location = /media { - if ($request_method !~ ^(HEAD|PUT)$) { - return 405; - } - fastcgi_param QUERY_STRING $query_string; - fastcgi_param REQUEST_METHOD $request_method; - fastcgi_param CONTENT_TYPE $content_type; - fastcgi_param CONTENT_LENGTH $content_length; - fastcgi_param SCRIPT_NAME $fastcgi_script_name; - fastcgi_param REQUEST_URI $request_uri; - fastcgi_param DOCUMENT_URI $document_uri; - fastcgi_param DOCUMENT_ROOT $document_root; - fastcgi_param SERVER_PROTOCOL $server_protocol; - fastcgi_param REQUEST_SCHEME $scheme; - fastcgi_param HTTPS $https if_not_empty; - fastcgi_param GATEWAY_INTERFACE CGI/1.1; - fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; - fastcgi_param REMOTE_ADDR $remote_addr; - fastcgi_param REMOTE_PORT $remote_port; - fastcgi_param SERVER_ADDR $server_addr; - fastcgi_param SERVER_PORT $server_port; - fastcgi_param SERVER_NAME $server_name; - fastcgi_param REDIRECT_STATUS 200; - fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - fastcgi_pass fastcgi_backend; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } # PUT /report (BUD-09) - Report content @@ -165,6 +166,7 @@ http { if ($request_method !~ ^(PUT)$) { return 405; } + fastcgi_pass fastcgi_backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; @@ -185,24 +187,15 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - fastcgi_pass fastcgi_backend; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } # GET /auth (NIP-42) - Challenge generation location = /auth { - if ($request_method !~ ^(GET|OPTIONS)$) { + if ($request_method !~ ^(GET)$) { return 405; } - - # Handle preflight OPTIONS requests for CORS - if ($request_method = OPTIONS) { - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Methods "GET, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization"; - add_header Access-Control-Max-Age 86400; - return 204; - } - + fastcgi_pass fastcgi_backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; @@ -223,29 +216,15 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - fastcgi_pass fastcgi_backend; - - # CORS headers for NIP-42 access - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Methods "GET, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization"; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } # Admin API endpoints (/api/*) location /api/ { - # Handle preflight OPTIONS requests for CORS - if ($request_method = OPTIONS) { - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Methods "GET, PUT, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization"; - add_header Access-Control-Max-Age 86400; - return 204; - } - if ($request_method !~ ^(GET|PUT)$) { return 405; } - + fastcgi_pass fastcgi_backend; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; @@ -266,17 +245,7 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; - - # Support for Authorization header fastcgi_param HTTP_AUTHORIZATION $http_authorization; - - fastcgi_pass fastcgi_backend; - - # CORS headers for API access - add_header Access-Control-Allow-Origin *; - add_header Access-Control-Allow-Methods "GET, PUT, OPTIONS"; - add_header Access-Control-Allow-Headers "Content-Type, Authorization"; - add_header Access-Control-Max-Age 86400; } # 2. BLOB OPERATIONS (SHA256 patterns) @@ -303,6 +272,10 @@ http { # Cache headers for blob content add_header Cache-Control "public, max-age=31536000, immutable"; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; } # Internal handler for DELETE operations @@ -329,36 +302,47 @@ http { fastcgi_param SERVER_NAME $server_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } - # 3. INTERNAL HANDLERS - # FastCGI handler for HEAD requests location ~ "^/fcgi-head/([a-f0-9]{64}).*$" { internal; fastcgi_pass fastcgi_backend; - fastcgi_param REQUEST_METHOD HEAD; - fastcgi_param REQUEST_URI /$1; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD HEAD; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI /$1; + fastcgi_param DOCUMENT_URI /$1; + fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; } - # 4. UTILITY ENDPOINTS + # 3. UTILITY ENDPOINTS # Health check endpoint location /health { access_log off; return 200 "OK\n"; add_header Content-Type text/plain; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; } # List files endpoint for debugging @@ -371,6 +355,342 @@ http { location = / { return 200 "Ginxsom Blossom Server\nEndpoints: GET /, PUT /upload, GET /list/\nHealth: GET /health\n"; add_header Content-Type text/plain; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; + } + } + + # Local development server - HTTPS + server { + listen 9443 ssl; + server_name localhost; + + # SSL Configuration using existing certificates + ssl_certificate /home/teknari/.ssl_for_local_servers/cert.pem; + ssl_certificate_key /home/teknari/.ssl_for_local_servers/key.pem; + + # SSL Security settings + ssl_protocols TLSv1.2 TLSv1.3; + ssl_prefer_server_ciphers on; + ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384; + + # Root directory for blossom files (local blobs directory) + root blobs; + + # Maximum upload size (adjust as needed) + client_max_body_size 100M; + + # Security headers + add_header X-Content-Type-Options nosniff always; + add_header X-Frame-Options DENY always; + add_header X-XSS-Protection "1; mode=block" always; + + # Universal CORS headers for all responses + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; + + # Universal OPTIONS preflight handler + if ($request_method = OPTIONS) { + return 204; + } + + # 1. SPECIFIC ENDPOINTS (most specific first) + + # PUT /upload (BUD-02) - File uploads + location = /upload { + if ($request_method !~ ^(PUT|HEAD)$) { + return 405; + } + # CORS headers + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; + + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # GET /list/ (BUD-02) - List user's blobs + location ~ "^/list/([a-f0-9]{64})$" { + if ($request_method !~ ^(GET)$) { + return 405; + } + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # PUT /mirror (BUD-04) - Mirror content + location = /mirror { + if ($request_method !~ ^(PUT)$) { + return 405; + } + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # PUT /report (BUD-09) - Report content + location = /report { + if ($request_method !~ ^(PUT)$) { + return 405; + } + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # GET /auth (NIP-42) - Challenge generation + location = /auth { + if ($request_method !~ ^(GET)$) { + return 405; + } + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # Admin API endpoints (/api/*) + location /api/ { + if ($request_method !~ ^(GET|PUT)$) { + return 405; + } + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD $request_method; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI $request_uri; + fastcgi_param DOCUMENT_URI $document_uri; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # 2. BLOB OPERATIONS (SHA256 patterns) + + # GET/HEAD/DELETE / (BUD-01) - Blob operations with optional file extensions + location ~ "^/([a-f0-9]{64})(\.[a-zA-Z0-9]+)?$" { + # Handle DELETE method via rewrite to avoid fastcgi_param in if block + if ($request_method = DELETE) { + rewrite ^/(.*)$ /fcgi-delete/$1 last; + } + + # Route HEAD requests to FastCGI for metadata + if ($request_method = HEAD) { + rewrite ^/(.*)$ /fcgi-head/$1 last; + } + + # Only allow GET for file serving at this point + if ($request_method != GET) { + return 405; + } + + # GET requests - serve files directly with extension fallback + try_files /$1.txt /$1.jpg /$1.jpeg /$1.png /$1.webp /$1.gif /$1.pdf /$1.mp4 /$1.mp3 /$1.md =404; + + # Cache headers for blob content + add_header Cache-Control "public, max-age=31536000, immutable"; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; + } + + # Internal handler for DELETE operations + location ~ "^/fcgi-delete/([a-f0-9]{64}).*$" { + internal; + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD DELETE; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI /$1; + fastcgi_param DOCUMENT_URI /$1; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # FastCGI handler for HEAD requests + location ~ "^/fcgi-head/([a-f0-9]{64}).*$" { + internal; + fastcgi_pass fastcgi_backend; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param REQUEST_METHOD HEAD; + fastcgi_param CONTENT_TYPE $content_type; + fastcgi_param CONTENT_LENGTH $content_length; + fastcgi_param SCRIPT_NAME $fastcgi_script_name; + fastcgi_param REQUEST_URI /$1; + fastcgi_param DOCUMENT_URI /$1; + fastcgi_param DOCUMENT_ROOT $document_root; + fastcgi_param SERVER_PROTOCOL $server_protocol; + fastcgi_param REQUEST_SCHEME $scheme; + fastcgi_param HTTPS $https if_not_empty; + fastcgi_param GATEWAY_INTERFACE CGI/1.1; + fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; + fastcgi_param REMOTE_ADDR $remote_addr; + fastcgi_param REMOTE_PORT $remote_port; + fastcgi_param SERVER_ADDR $server_addr; + fastcgi_param SERVER_PORT $server_port; + fastcgi_param SERVER_NAME $server_name; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME $document_root/ginxsom.fcgi; + fastcgi_param HTTP_AUTHORIZATION $http_authorization; + } + + # 3. UTILITY ENDPOINTS + + # Health check endpoint + location /health { + access_log off; + return 200 "OK (HTTPS)\n"; + add_header Content-Type text/plain; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; + } + + # List files endpoint for debugging + location /debug/list { + autoindex on; + autoindex_format json; + } + + # Root redirect + location = / { + return 200 "Ginxsom Blossom Server (HTTPS)\nEndpoints: GET /, PUT /upload, GET /list/\nHealth: GET /health\n"; + add_header Content-Type text/plain; + add_header Access-Control-Allow-Origin * always; + add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH" always; + add_header Access-Control-Allow-Headers "Authorization, Content-Type, Content-Length, Accept, Origin, User-Agent, DNT, Cache-Control, X-Mx-ReqToken, Keep-Alive, X-Requested-With, If-Modified-Since, *" always; + add_header Access-Control-Max-Age 86400 always; } } } diff --git a/db/ginxsom.db b/db/ginxsom.db index 47384861b683cca2d43ddb26cb35eb5f082ec094..d9b36872108d3461c94bf081edcb0115e6ce6c33 100644 GIT binary patch delta 5225 zcmeHLU5H#~8J@|`?3~%%In!*KX0yTU?(Al>t=Rqke=fwfk_w8lN)bws^!weUnxB#e zv{g?gUP#dk*STp>Q4uM`3kge%C4#o;g%nEaReNC-p}`+$FSOW;MD(3GyPKKTNyZ%n zFT5Gv@660|p7Xx%bH4Za&Ymru{Z;8(`^rxh3WdqF*^d;Ty7<@+>S-C4#rh5SEKJsK zw9>nlvf}B&>xB;&np4x&X013^YSs!eYOaK{(FJLV#a1KBlor+!j~LfnYOSe~(inyi zvqBqdtYeyK#T1hFKN-IG;mBqIhi?Oo#DZI zr5U3P3n_3k-cf=*RX$>>n^SwYxT$C;(;gGU81o(*%PFx&dnGXTLUSY{iq0rN;DQ+x zj59$R#09oI+FovFaCSR#196+$;>M!zSR%=ZL^yCml*GYP$YB&*NsV|Q7GZ6uBE(~i zoC}AwWK<(1sibIEcjES+3zl+^DAmGfWK2|03NBD&+^Hb25MCIHsM4Mx<&lYqd%+yD zP!;bSSx+b5s(l)2y>sUnd^Sce6)In^UQYK^UYU4){BZi`@!iRz6aO5&Gvg#gRsOtyNiBzNda~`j_+%>Fepu^l$aq`ks1P zFQ?bm=N|Z4nk6Hp;?b8@9$4xGS5Lk@w-LNKyAixGlm8}pXFk7j`r$@?MXnyq1Abv~ zBY65i9jJUr1hyIKWj89&lT!7)AO}Zzb~yN zUrK1@t!g>><=6+RuT|HopQt?7ntW_w$Cz7xaQ1K|7x`^p-vhiMbCGWcCF|YxIuBT7UcTUFCi0Lxo1|-9mb#_HIhkg>-kil72J&N_rw4Z6&Af z-;sU?#Qu|7mX6F7%^82}s`+FE@xopPV@hsIU-;^0o0VF7UKqW*Rk>?^6$$J zm3~~erR3t;??$rb^b!oaBOQ}4?Cj@Xy>hE@+xz03#h%^4CQL7GvFjODwlS-WmiaBc z9({>lXtT@ux|l(lVfsK9yKT)t+13y=dj4z=y{GS-ygTJ?VT)bg(JC8owkocTbhBgE zhi5n6W|wsuZ`jeg_|q%h?2>l|W|#Hzr+XVfZ%2n+|B-#LiT#Q0!d^Z7a5uT^eeQXX zz8mr-)a6fC{tE{6_((QAx7B)JOa5ak*zE*MOP}egEzH>6>Fbld?Dl65)3aObhIN?5 zBfsup_hyG(*6(O!km63yY_S{AxxUZ1W}D7+2mM|Ty*CC(-feT2zFhb&$abcEro@l{ zj|=_{fu$D8f;Z$Lf?toBHbO@@vrxzxgB;j*FvCm>38w%W%)gDs5?A_IlCy&;2u_t= z9hO|7xn~k`SDa~`+x_hfhMs3PM;xv!+)_nBXaJKgopBCJtfRzmk>aSWjx;I~tY;iv zN4EVFIOx$HMKJokM@;7jA)56){%YffHt4bXu9 E0-*_+egFUf delta 199 zcmZoTz|zpbGC`U(nSp^pV4{LOWAes?1^j%xK(06w9|Qk#zR!FSllcTRHcq_3xII9E zF_(FJH7jE)ml+pG3FmeO&h32SJUh9g`Cf91^8Dvp%=easL|MGTkRy1hj+`L`WSB+Vm-)J&>fc|Dhhd+Fi&&RP&Hjh8cC(gB!f&UNR wOx{#}Ek54KY6&Vp9mQOe4`#b=ewQW8$_}!XZxzF2nF2ka&Jw=OtLnlU0TXOFc>n+a diff --git a/src/main.c b/src/main.c index 2da2980..d4a1424 100644 --- a/src/main.c +++ b/src/main.c @@ -306,6 +306,7 @@ int run_interactive_setup(const char *config_path) { */ // Function declarations +void handle_options_request(void); void send_error_response(int status_code, const char *error_type, const char *message, const char *details); void log_request(const char *method, const char *uri, const char *auth_status, @@ -452,6 +453,7 @@ void handle_head_request(const char *sha256) { // Validate SHA-256 format (64 hex characters) if (strlen(sha256) != 64) { printf("Status: 400 Bad Request\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Invalid SHA-256 hash format\n"); return; @@ -460,6 +462,7 @@ void handle_head_request(const char *sha256) { // Check if blob exists in database - this is the single source of truth if (!get_blob_metadata(sha256, &metadata)) { printf("Status: 404 Not Found\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Blob not found\n"); return; @@ -467,6 +470,7 @@ void handle_head_request(const char *sha256) { // Return successful HEAD response with metadata from database printf("Status: 200 OK\r\n"); + printf("Content-Type: %s\r\n", metadata.type); printf("Content-Length: %ld\r\n", metadata.size); printf("Cache-Control: public, max-age=31536000, immutable\r\n"); @@ -533,6 +537,12 @@ const char *extract_sha256_from_uri(const char *uri) { ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// BUD-01 CORS Compliance System (Now handled by nginx) +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + // Enhanced error response helper functions void send_error_response(int status_code, const char *error_type, const char *message, const char *details) { @@ -696,6 +706,7 @@ void handle_list_request(const char *pubkey) { // Start JSON response printf("Status: 200 OK\r\n"); + printf("Content-Type: application/json\r\n\r\n"); printf("[\n"); @@ -911,6 +922,7 @@ void handle_delete_request_with_validation(const char *sha256, nostr_request_res // Return success response printf("Status: 200 OK\r\n"); + printf("Content-Type: application/json\r\n\r\n"); printf("{\n"); printf(" \"message\": \"Blob deleted successfully\",\n"); @@ -973,6 +985,7 @@ void handle_upload_request(void) { unsigned char *file_data = malloc(content_length); if (!file_data) { printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Memory allocation failed\n"); return; @@ -983,6 +996,7 @@ void handle_upload_request(void) { free(file_data); printf("Status: 400 Bad Request\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to read complete file data\n"); return; @@ -994,6 +1008,7 @@ void handle_upload_request(void) { if (nostr_sha256(file_data, content_length, hash) != NOSTR_SUCCESS) { free(file_data); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Hash calculation failed\n"); return; @@ -1022,6 +1037,7 @@ void handle_upload_request(void) { if (!outfile) { free(file_data); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to create file\n"); return; @@ -1044,6 +1060,7 @@ void handle_upload_request(void) { // Clean up partial file unlink(filepath); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to write complete file\n"); return; @@ -1113,6 +1130,7 @@ void handle_upload_request(void) { unlink(filepath); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to store blob metadata\n"); return; @@ -1129,6 +1147,7 @@ void handle_upload_request(void) { // Return success response with blob descriptor printf("Status: 200 OK\r\n"); + printf("Content-Type: application/json\r\n\r\n"); printf("{\n"); printf(" \"sha256\": \"%s\",\n", sha256_hex); @@ -1214,6 +1233,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re file_data = malloc(content_length); if (!file_data) { printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Memory allocation failed\n"); return; @@ -1223,6 +1243,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re if (bytes_read != (size_t)content_length) { free(file_data); printf("Status: 400 Bad Request\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to read complete file data\n"); return; @@ -1238,6 +1259,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re if (nostr_sha256(file_data, file_size, hash) != NOSTR_SUCCESS) { if (should_free_file_data) free(file_data); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Hash calculation failed\n"); return; @@ -1266,6 +1288,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re if (!outfile) { if (should_free_file_data) free(file_data); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to create file\n"); return; @@ -1291,6 +1314,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re // Clean up partial file unlink(filepath); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to write complete file\n"); return; @@ -1348,6 +1372,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re // consistency unlink(filepath); printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Failed to store blob metadata\n"); return; @@ -1364,6 +1389,7 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re // Return success response with blob descriptor printf("Status: 200 OK\r\n"); + printf("Content-Type: application/json\r\n\r\n"); printf("{\n"); printf(" \"sha256\": \"%s\",\n", sha256_hex); @@ -1388,6 +1414,25 @@ void handle_upload_request_with_validation(nostr_request_result_t* validation_re ///////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// OPTIONS Preflight Request Handler (BUD-01 CORS) +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + +// Handle OPTIONS requests for CORS preflight +void handle_options_request(void) { + log_request("OPTIONS", "*", "cors_preflight", 0); + + printf("Status: 200 OK\r\n"); + + printf("Content-Length: 0\r\n"); + printf("\r\n"); + // No body for OPTIONS response + + log_request("OPTIONS", "*", "cors_preflight", 200); +} + // Handle GET /auth requests to provide NIP-42 challenges void handle_auth_challenge_request(void) { // Log the incoming request @@ -1402,6 +1447,7 @@ void handle_auth_challenge_request(void) { if (result != NOSTR_SUCCESS) { printf("Status: 500 Internal Server Error\r\n"); + printf("Content-Type: application/json\r\n\r\n"); printf("{\n"); printf(" \"error\": \"challenge_generation_failed\",\n"); @@ -1417,11 +1463,8 @@ void handle_auth_challenge_request(void) { // Return the challenge as JSON printf("Status: 200 OK\r\n"); - printf("Content-Type: application/json\r\n"); - printf("Access-Control-Allow-Origin: *\r\n"); - printf("Access-Control-Allow-Methods: GET, POST, OPTIONS\r\n"); - printf("Access-Control-Allow-Headers: Content-Type, Authorization\r\n"); - printf("\r\n"); + + printf("Content-Type: application/json\r\n\r\n"); printf("{\n"); printf(" \"challenge\": \"%s\",\n", challenge_buffer); printf(" \"relay\": \"ginxsom\",\n"); @@ -1490,11 +1533,21 @@ if (!config_loaded /* && !initialize_server_config() */) { if (!request_method || !request_uri) { printf("Status: 400 Bad Request\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Invalid request\n"); continue; } + ///////////////////////////////////////////////////////////////////// + // HANDLE OPTIONS PREFLIGHT REQUESTS (BUD-01 CORS) + ///////////////////////////////////////////////////////////////////// + + if (strcmp(request_method, "OPTIONS") == 0) { + handle_options_request(); + continue; + } + ///////////////////////////////////////////////////////////////////// // CENTRALIZED REQUEST VALIDATION SYSTEM ///////////////////////////////////////////////////////////////////// @@ -1607,6 +1660,7 @@ if (!config_loaded /* && !initialize_server_config() */) { log_request("HEAD", request_uri, "public", 200); } else { printf("Status: 400 Bad Request\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Invalid SHA-256 hash in URI\n"); log_request("HEAD", request_uri, "none", 400); @@ -1687,6 +1741,7 @@ if (!config_loaded /* && !initialize_server_config() */) { } else { // Other methods not implemented yet printf("Status: 501 Not Implemented\r\n"); + printf("Content-Type: text/plain\r\n\r\n"); printf("Method %s not implemented\n", request_method); log_request(request_method, request_uri, "none", 501); diff --git a/tests/auth_test_tmp/test_upload.txt b/tests/auth_test_tmp/test_upload.txt new file mode 100644 index 0000000..786ccf7 --- /dev/null +++ b/tests/auth_test_tmp/test_upload.txt @@ -0,0 +1 @@ +test data for upload diff --git a/tests/cors_test.sh b/tests/cors_test.sh new file mode 100755 index 0000000..dba98ba --- /dev/null +++ b/tests/cors_test.sh @@ -0,0 +1,194 @@ +#!/bin/bash + +# CORS Test Suite for Ginxsom Blossom Server +# Tests all endpoints for both HTTP and HTTPS protocols +# Validates presence of required CORS headers per BUD-01 specification + +set -e + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Test configuration +HTTP_BASE="http://localhost:9001" +HTTPS_BASE="https://localhost:9443" +SAMPLE_SHA256="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" # empty string hash +SAMPLE_PUBKEY="0000000000000000000000000000000000000000000000000000000000000001" + +# Required CORS headers for BUD-01 compliance +REQUIRED_HEADERS=( + "Access-Control-Allow-Origin" + "Access-Control-Allow-Methods" + "Access-Control-Allow-Headers" + "Access-Control-Max-Age" +) + +# Test counters +TOTAL_TESTS=0 +PASSED_TESTS=0 +FAILED_TESTS=0 + +echo -e "${BLUE}===========================================${NC}" +echo -e "${BLUE} GINXSOM CORS TEST SUITE (BUD-01) ${NC}" +echo -e "${BLUE}===========================================${NC}" +echo "" + +# Function to check CORS headers +check_cors_headers() { + local endpoint="$1" + local method="$2" + local protocol="$3" + local extra_args="$4" + + TOTAL_TESTS=$((TOTAL_TESTS + 1)) + + echo -e "${YELLOW}Testing:${NC} $method $endpoint ($protocol)" + + # Make request and capture headers + if [ "$protocol" = "HTTPS" ]; then + headers=$(curl -k -s -I -X "$method" $extra_args "$endpoint" 2>/dev/null || echo "CURL_FAILED") + else + headers=$(curl -s -I -X "$method" $extra_args "$endpoint" 2>/dev/null || echo "CURL_FAILED") + fi + + if [ "$headers" = "CURL_FAILED" ]; then + echo -e " ${RED}✗ FAIL:${NC} Could not connect to $endpoint" + FAILED_TESTS=$((FAILED_TESTS + 1)) + return 1 + fi + + # Check HTTP response is valid + if ! echo "$headers" | grep -q "HTTP/"; then + echo -e " ${RED}✗ FAIL:${NC} Invalid HTTP response" + FAILED_TESTS=$((FAILED_TESTS + 1)) + return 1 + fi + + local all_headers_present=true + local missing_headers=() + + # Check each required header + for header in "${REQUIRED_HEADERS[@]}"; do + if ! echo "$headers" | grep -qi "^$header:"; then + all_headers_present=false + missing_headers+=("$header") + fi + done + + if [ "$all_headers_present" = true ]; then + echo -e " ${GREEN}✓ PASS:${NC} All CORS headers present" + + # Verify specific header values + local origin_header=$(echo "$headers" | grep -i "Access-Control-Allow-Origin:" | head -1 | sed 's/.*: *//') + if [[ "$origin_header" == *"*"* ]]; then + echo -e " ${GREEN}✓${NC} Access-Control-Allow-Origin: $origin_header" + else + echo -e " ${RED}✗${NC} Access-Control-Allow-Origin should be '*', got: $origin_header" + all_headers_present=false + fi + + # Check for duplicate headers (common CORS issue) + local origin_count=$(echo "$headers" | grep -ci "Access-Control-Allow-Origin:" || echo "0") + if [ "$origin_count" -gt 1 ]; then + echo -e " ${RED}✗${NC} WARNING: Multiple Access-Control-Allow-Origin headers detected ($origin_count)" + all_headers_present=false + fi + + PASSED_TESTS=$((PASSED_TESTS + 1)) + else + echo -e " ${RED}✗ FAIL:${NC} Missing CORS headers: ${missing_headers[*]}" + FAILED_TESTS=$((FAILED_TESTS + 1)) + fi + + echo "" + return 0 +} + +# Test endpoints for both HTTP and HTTPS +test_endpoint() { + local path="$1" + local method="$2" + local extra_args="$3" + + # Test HTTP + check_cors_headers "$HTTP_BASE$path" "$method" "HTTP" "$extra_args" + + # Test HTTPS + check_cors_headers "$HTTPS_BASE$path" "$method" "HTTPS" "$extra_args" +} + +echo -e "${BLUE}=== TESTING CORE BLOSSOM ENDPOINTS ===${NC}" +echo "" + +# 1. OPTIONS preflight tests (most critical for CORS) +echo -e "${YELLOW}--- OPTIONS Preflight Requests ---${NC}" +test_endpoint "/" "OPTIONS" +test_endpoint "/upload" "OPTIONS" +test_endpoint "/auth" "OPTIONS" +test_endpoint "/health" "OPTIONS" +test_endpoint "/mirror" "OPTIONS" +test_endpoint "/report" "OPTIONS" +test_endpoint "/$SAMPLE_SHA256" "OPTIONS" +test_endpoint "/list/$SAMPLE_PUBKEY" "OPTIONS" +test_endpoint "/api/config" "OPTIONS" + +# 2. GET requests +echo -e "${YELLOW}--- GET Requests ---${NC}" +test_endpoint "/" "GET" +test_endpoint "/health" "GET" +test_endpoint "/auth" "GET" +test_endpoint "/$SAMPLE_SHA256" "GET" +test_endpoint "/list/$SAMPLE_PUBKEY" "GET" +test_endpoint "/api/config" "GET" + +# 3. HEAD requests +echo -e "${YELLOW}--- HEAD Requests ---${NC}" +test_endpoint "/" "HEAD" +test_endpoint "/health" "HEAD" +test_endpoint "/$SAMPLE_SHA256" "HEAD" +test_endpoint "/upload" "HEAD" + +# 4. PUT requests (will likely fail with 400/401 but should still have CORS) +echo -e "${YELLOW}--- PUT Requests (CORS on Errors) ---${NC}" +test_endpoint "/upload" "PUT" "-H 'Content-Type: text/plain'" +test_endpoint "/mirror" "PUT" "-H 'Content-Type: application/json'" +test_endpoint "/report" "PUT" "-H 'Content-Type: application/json'" +test_endpoint "/api/config" "PUT" "-H 'Content-Type: application/json'" + +# 5. DELETE requests +echo -e "${YELLOW}--- DELETE Requests ---${NC}" +test_endpoint "/$SAMPLE_SHA256" "DELETE" + +# 6. Edge cases and variations +echo -e "${YELLOW}--- Edge Cases ---${NC}" +test_endpoint "/nonexistent" "GET" +test_endpoint "/$SAMPLE_SHA256.txt" "GET" +test_endpoint "/$SAMPLE_SHA256.jpg" "GET" +test_endpoint "/list/invalid_pubkey" "GET" + +echo -e "${BLUE}===========================================${NC}" +echo -e "${BLUE} TEST RESULTS SUMMARY ${NC}" +echo -e "${BLUE}===========================================${NC}" +echo "" +echo -e "Total Tests: $TOTAL_TESTS" +echo -e "${GREEN}Passed: $PASSED_TESTS${NC}" +echo -e "${RED}Failed: $FAILED_TESTS${NC}" +echo "" + +if [ $FAILED_TESTS -eq 0 ]; then + echo -e "${GREEN}🎉 ALL TESTS PASSED! 🎉${NC}" + echo -e "${GREEN}✅ CORS implementation is BUD-01 compliant${NC}" + echo -e "${GREEN}✅ All endpoints support cross-origin requests${NC}" + echo -e "${GREEN}✅ No duplicate header issues detected${NC}" + echo "" + exit 0 +else + echo -e "${RED}❌ TESTS FAILED! ❌${NC}" + echo -e "${RED}⚠️ CORS implementation needs fixes${NC}" + echo "" + exit 1 +fi \ No newline at end of file