AAP QA Demo Application

Akamai WAF Test Origin — qaaifwtest1.konaqa.com
Not Authenticated
Java 21 · Tomcat 10

🔑 Authentication

Login

Register

Demo users: admin/admin123, user/user123, demo/demo123

🌐 REST API Testing

Item Management

Quick Actions

REST API responses will appear here...

💬 WebSocket Chat

Connection

Disconnected

Chat

Connect to start chatting...

⚡ JSON-RPC Calculator

Calculator Operations

Quick Tests

JSON-RPC responses will appear here...

📁 File Upload & Forms

File Upload

📁 Click to select files or drag and drop here

Form Submission

Upload and form responses will appear here...

🤖 AI Chatbot Interface

Test different content types and messages with our AI chatbot

Quick Tests

AI Chat

Welcome! I'm your AI chatbot. Try different content types and messages.
AI Chat responses and status will appear here...

🗜️ Compression Testing

The origin supports Brotli (br), gzip, and deflate on all non-streaming endpoints. Streaming paths (/api/sse/*, /api/ndjson/*, /ws/*) are never buffered or compressed.
Note: browsers control Accept-Encoding automatically — use the curl commands below to force a specific encoding and inspect raw Content-Encoding response headers.

Quick Fetch Test

Browser sends Accept-Encoding: br, gzip, deflate automatically and transparently decodes the response. The Negotiated field below shows what the server actually used.

Result will appear here...

curl Commands

Copy these to observe raw Content-Encoding headers. The brotli -d command decodes the binary body.

BROTLI — request br encoding, decode body
curl -sv -H "Accept-Encoding: br" "https://qaaifwtest1.konaqa.com/mcp/health" 2>&1 | grep "Content-Encoding"
GZIP — request gzip encoding, decode with gunzip
curl -s -H "Accept-Encoding: gzip" -H "Content-Type: application/json" \ -d '{"message":"hello"}' "https://qaaifwtest1.konaqa.com/api/aichat" | gunzip
IDENTITY — no compression, plain JSON body
curl -sv "https://qaaifwtest1.konaqa.com/api/aichat" \ -H "Content-Type: application/json" -d '{"message":"hello"}' 2>&1 | grep "Content-Encoding"
SSE — streaming, no compression (Content-Type: text/event-stream)
curl -sN -H "Accept-Encoding: br" "https://qaaifwtest1.konaqa.com/api/sse/pii?type=ssn"
NDJSON — streaming, no compression (Content-Type: application/x-ndjson)
curl -sN -H "Accept-Encoding: br" "https://qaaifwtest1.konaqa.com/api/ndjson/pii?type=all"
BROTLI DECODE — inspect compressed body size vs plain
curl -s -H "Accept-Encoding: br" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \ "https://qaaifwtest1.konaqa.com/mcp" > /tmp/mcp.br && \ wc -c /tmp/mcp.br && \ brotli -d /tmp/mcp.br -o /tmp/mcp.json && \ wc -c /tmp/mcp.json

🔐 OWASP API Test Endpoints

122 endpoints across 16 business domains at /api/v1/*. Designed to exercise all OWASP API Security Top 10 (2023/2024) risk categories and Akamai Unified Asset Inventory & Discovery traffic patterns.

📖 Open Swagger UI ↗ 📄 OpenAPI JSON ↗

OWASP API Top 10 Coverage

Risk Key Endpoints
API1 Broken Object Level Auth/users/{id}, /orders/{id}, /payments/{id}, /accounts/{id}
API2 Broken Authentication/auth/token, /auth/apikeys, /auth/mfa/*
API3 Broken Object Property Level/users/{id}/profile, /users/{id}/roles, /config
API4 Unrestricted Resource Consumption/documents (upload), /reports/generate, /analytics/export
API5 Broken Function Level Auth/admin/*, /internal/*, /config/features/{id}
API6 Unrestricted Sensitive Business Flows/cart/checkout, /checkout/guest, /checkout/payment-intent, /checkout/confirm, /checkout/{sessionId}, /checkout/{sessionId}/abandon, /accounts/transfer, /payments/refund
API7 Server Side Request Forgery/integrations/fetch
API8 Security Misconfiguration/debug/env, /internal/config-dump, /debug/threads
API9 Improper Inventory Management/internal/* shadow endpoints, /debug/*
API10 Unsafe Consumption of APIs/integrations/slack/notify, /integrations/crm/sync, /integrations/sso/callback

Domain Summary (16 domains, 122 endpoints)

Domain Base Path # OWASP Risk
Users/api/v1/users12API1, API3
Auth/api/v1/auth9API2
Accounts/api/v1/accounts5API1, API6
Payments/api/v1/payments4API1, API6
Orders & Cart/api/v1/orders, /api/v1/cart10API1, API6
Checkout/api/v1/checkout5API6
Products/api/v1/products, /api/v1/categories7AID Discovery
Notifications & Webhooks/api/v1/notifications, /api/v1/webhooks9API4
Reports & Analytics/api/v1/reports, /api/v1/analytics7API4
Documents/api/v1/documents, /api/v1/export8API4
Search/api/v1/search, /api/v1/suggest5AID Discovery
Admin/api/v1/admin, /api/v1/config9API5
Internal / Shadow/api/v1/internal, /api/v1/debug, /api/v1/health10API8, API9
Integrations/api/v1/integrations4API7, API10
PII/api/v1/pii8FAI PII targets
SOAP / MCP protocol/api/v1/soap, /api/v1/mcp10AID Protocol
Quick test: curl https://qaaifwtest1.konaqa.com/api/v1/users  ·  curl https://qaaifwtest1.konaqa.com/api/v1/pii/users/1  ·  curl https://qaaifwtest1.konaqa.com/api/v1/debug/env

📺 Real-time & Streaming

Dedicated pages for each streaming protocol — open each in a new tab to run them side by side.

📡

STOMP Chat

Full STOMP 1.2 over WebSocket with JWT auth. Endpoint: /ws/chat-native. AI responses contain PII for WAF response-body testing. Click Get Token then Connect.

Open STOMP Chat ↗
💬

Raw JSON WebSocket

Raw Jakarta @ServerEndpoint at /ws/chat-raw. First message must be {"type":"auth","token":"..."}. No STOMP framing.

Open Raw WS ↗
📺

SSE / NDJSON Tester

Server-Sent Events (/api/sse/chat, /api/sse/pii) and NDJSON streaming (/api/ndjson/chat, /api/ndjson/pii). Includes Akamai FAI config reference.

Open SSE / NDJSON ↗
🔄

Protocol Comparison

Side-by-side view of STOMP vs raw JSON WebSocket frames — useful for comparing how each protocol carries the same message through Akamai.

Open Comparison ↗
🤖

Streaming AI Chat

Chunked HTTP streaming demo at /api/aichat/streaming and SSE-mode enhanced chat at /api/aichat/enhanced?stream=true.

Open Streaming Chat ↗
🗜️

Compression Tester

Test Brotli, gzip, and identity encoding across endpoints. Browser auto-negotiates Accept-Encoding — use the built-in curl commands to force br and inspect raw Content-Encoding headers.

📖

MCP Swagger UI

Interactive API docs for all 50 MCP tools across math, string, PII, security, and system categories. Test tool calls directly from the browser.

Open Swagger UI ↗

🧠 MCP Server (Model Context Protocol)

Streamable HTTP transport — 50 tools across math, string, PII, security, and system categories. Version-pinned endpoints for WAF protocol inspection testing.

Quick Actions

Endpoint

MCP responses will appear here...

🔒 Protected Resources

User Profile

Protected Actions

These endpoints require authentication. Login first to access them.

Protected resource responses will appear here...