- Shipped
- July 15, 2026 at 11:35 PM UTC
- Author
- Kamo
- Commit
- ade24ea
Extracts PublicChatController's private validateViaDownstream() into a shared PublicChatKeyResolver bean so PublicChatWebSocketHandler can reuse the same downstream DB validation + mandatory OriginMatcher check on a cold Redis cache, instead of duplicating the logic. The WS handshake now reads the real Origin handshake header and passes it into keyValidator.validate(...) (was null), so the allowed-origins gate is actually enforced on /ws/public-chat, and falls back to the downstream validator when the cache is cold so the handshake doesn't spuriously fail before any HTTP call has warmed the cache.