使用说明
MCP安全演示
此项目演示了一个使用Spring Security和JWT身份验证进行安全保护的Spring WebFlux应用程序。它提供了一个登录端点来获取令牌,以及一个需要有效令牌才能访问的受保护端点。它还包括一个用于实时通信的服务器发送事件(SSE)端点。
使用Claude Desktop的演示场景
此服务器旨在与Claude Desktop等客户端配合使用。客户端可以连接到SSE端点以接收实时更新。
Claude桌面配置
要将Claude Desktop连接到此服务器,请使用以下MCP服务器配置:
{
"mcpServers": {
"default-server": {
"type": "sse",
"url": "http://localhost:8080/sse",
"note": "For SSE connections, add this URL directly in your MCP Client"
}
}
}
运行应用程序
- 使用Maven启动应用程序:
./mvnw spring-boot:run
认证
应用程序使用硬编码用户进行身份验证。
- 用户名:
user@example.com - 密码:
password
1.获取JWT令牌
向发送POST请求 /login 使用用户的凭据接收JWT的端点。
curl --location 'http://localhost:8080/login' \
--header 'Content-Type: application/json' \
--data '{
"username": "user@example.com",
"password": "password"
}'
响应将包含JWT令牌:
{
"token": "your-jwt-token"
}
2.访问受保护的端点
将获得的JWT纳入 Authorization 标头作为访问受保护端点的承载令牌。
例如,要访问 /ping 端点:
curl --location 'http://localhost:8080/ping' \
--header 'Authorization: Bearer <your-jwt-token>'
成功的请求将返回字符串 "pong".
3.连接到SSE端点
这 /sse 端点受到保护。您的客户端需要处理身份验证流才能成功连接。出于测试目的,您可以将临时规则添加到 SecurityConfig.java 允许所有访问 /sse 端点(如果需要)。
