test: Add 8 and update 14 files
This commit is contained in:
85
testing/test_simple.sh
Executable file
85
testing/test_simple.sh
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Simple test to verify authentication works with hashed tokens
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SERVER_PID=""
|
||||
|
||||
# Cleanup function
|
||||
function cleanup() {
|
||||
if [ -n "$SERVER_PID" ]; then
|
||||
echo ""
|
||||
echo "Cleaning up: Stopping server (PID: $SERVER_PID)..."
|
||||
kill $SERVER_PID 2>/dev/null || true
|
||||
wait $SERVER_PID 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
# Set up trap to ensure cleanup on exit
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
echo "Simple authentication test with bcrypt hashes"
|
||||
|
||||
TEST_TOKEN="test123"
|
||||
HASH=$(../output/hash_token -c 10 -q "${TEST_TOKEN}")
|
||||
echo "Generated hash for '${TEST_TOKEN}': ${HASH:0:20}..."
|
||||
|
||||
# Create config with hashed token
|
||||
cat > ~/.config/simple_object_storage/sos_config.json << EOF
|
||||
{
|
||||
"write_tokens": ["$HASH"],
|
||||
"rate_limiting": {
|
||||
"auth_rate_limit": 5,
|
||||
"auth_window_seconds": 2
|
||||
},
|
||||
"port": 7703,
|
||||
"host": "127.0.0.1"
|
||||
}
|
||||
EOF
|
||||
|
||||
# Make sure no server is running
|
||||
fuser -k 7703/tcp 2>/dev/null || true
|
||||
sleep 1
|
||||
|
||||
# Start server with hashed config
|
||||
echo "Starting server with hashed token..."
|
||||
../output/simple-object-server &
|
||||
SERVER_PID=$!
|
||||
sleep 2
|
||||
|
||||
# Test with plaintext token (server has hash)
|
||||
echo "Testing with plaintext token against hashed config..."
|
||||
RESPONSE=$(curl -s -X PUT \
|
||||
-H "Authorization: Bearer ${TEST_TOKEN}" \
|
||||
-F "file=@test.sh" \
|
||||
-F 'metadata={"labeltags":["test:hashed"]}' \
|
||||
"http://127.0.0.1:7703/upload")
|
||||
|
||||
if echo "$RESPONSE" | grep -q '"result":"success"'; then
|
||||
echo "✓ Authentication successful"
|
||||
HASH_RETURNED=$(echo "$RESPONSE" | jq -r '.hash')
|
||||
# Clean up
|
||||
curl -s -H "Authorization: Bearer ${TEST_TOKEN}" \
|
||||
"http://127.0.0.1:7703/deleteobject?hash=${HASH_RETURNED}" > /dev/null
|
||||
else
|
||||
echo "✗ Authentication failed: $RESPONSE"
|
||||
fi
|
||||
|
||||
# Test with wrong token
|
||||
echo "Testing with wrong token (should fail)..."
|
||||
RESPONSE=$(curl -s -X PUT \
|
||||
-H "Authorization: Bearer wrongtoken" \
|
||||
-F "file=@test.sh" \
|
||||
-F 'metadata={"labeltags":["test:wrong"]}' \
|
||||
"http://127.0.0.1:7703/upload")
|
||||
|
||||
if echo "$RESPONSE" | grep -q '"error"'; then
|
||||
echo "✓ Invalid token correctly rejected"
|
||||
else
|
||||
echo "✗ Invalid token was incorrectly accepted: $RESPONSE"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Test complete!"
|
||||
# Cleanup will be handled by the trap
|
Reference in New Issue
Block a user