📌 Description
Claude Desktop 등록용 장기 API 키를 발급·조회·폐기하는 REST API(JWT 인증)와, MCP 요청의 Authorization 헤더로 사용자를 식별하는 Spring Security 필터를 구현한다.
✅ To-do
📒 기타
mcp_access_tokens 테이블/엔티티는 이미 존재(V26) → Repository/Service/Controller/필터만 신규 구현. 기존 JwtAuthenticationFilter + CurrentUserArgumentResolver 패턴 그대로 미러링. Issue 1(골격)에 의존.
📌 Description
Claude Desktop 등록용 장기 API 키를 발급·조회·폐기하는 REST API(JWT 인증)와, MCP 요청의 Authorization 헤더로 사용자를 식별하는 Spring Security 필터를 구현한다.
✅ To-do
McpAccessTokenRepository구현 (기존McpAccessToken엔티티/V26 마이그레이션 재사용)McpAccessTokenService: 토큰 발급(랜덤 생성 + 해시 저장), 목록 조회, 폐기(revoked_atsoft delete) 구현McpTokenController:POST/GET /mcp/tokens,DELETE /mcp/tokens/{tokenId}(기존 JWT 인증 재사용)McpApiKeyAuthFilter: Authorization 헤더 → 해시 대조 → SecurityContext에 userId 저장, 실패 시 UNAUTHORIZEDSecurityConfig에서/mcp/**permitAll제거하고McpApiKeyAuthFilter로 교체last_used_at갱신 로직McpAccessTokenService, 필터)📒 기타
mcp_access_tokens테이블/엔티티는 이미 존재(V26) → Repository/Service/Controller/필터만 신규 구현. 기존JwtAuthenticationFilter+CurrentUserArgumentResolver패턴 그대로 미러링. Issue 1(골격)에 의존.