43 lines
1.6 KiB
Bash
Executable file
43 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Simple test to verify API authentication
|
|
# Usage: ./test-webmention-auth.sh YOUR_API_KEY
|
|
|
|
API_KEY="${1:-your-secret-key}"
|
|
API_ENDPOINT="${API_ENDPOINT:-https://api.ritual.sh/webmention/send}"
|
|
|
|
echo "Testing webmention API authentication"
|
|
echo "======================================"
|
|
echo "Endpoint: $API_ENDPOINT"
|
|
echo "API Key: ${API_KEY:0:10}... (truncated)"
|
|
echo ""
|
|
|
|
# Test 1: Wrong auth (should get 401)
|
|
echo "Test 1: Wrong auth (expecting 401 Unauthorized)"
|
|
echo "------------------------------------------------"
|
|
curl -v -X POST "$API_ENDPOINT" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"auth":"wrong-key","source":"https://ritual.sh/test/","target":"https://example.com/test/"}' \
|
|
2>&1 | grep -E "(< HTTP|Unauthorized|error)"
|
|
|
|
echo ""
|
|
echo ""
|
|
|
|
# Test 2: Correct auth (should get 400 or 201 depending on whether endpoints exist)
|
|
echo "Test 2: Correct auth (expecting 400 'No endpoint found' or 201 success)"
|
|
echo "------------------------------------------------------------------------"
|
|
curl -v -X POST "$API_ENDPOINT" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"auth\":\"$API_KEY\",\"source\":\"https://ritual.sh/test/\",\"target\":\"https://example.com/test/\"}" \
|
|
2>&1 | grep -E "(< HTTP|success|error|endpoint)"
|
|
|
|
echo ""
|
|
echo ""
|
|
|
|
# Test 3: Missing auth (should get 401)
|
|
echo "Test 3: Missing auth (expecting 401 Unauthorized)"
|
|
echo "--------------------------------------------------"
|
|
curl -v -X POST "$API_ENDPOINT" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"source":"https://ritual.sh/test/","target":"https://example.com/test/"}' \
|
|
2>&1 | grep -E "(< HTTP|Unauthorized|error)"
|