You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-19 15:06:19 +00:00
373d0399c1
Security (S3): - AuthHttpUtil/WebSocketHttpHandler: only honour the configured ws.ip.header forwarded-IP header when the DIRECT peer is a trusted reverse proxy, instead of trusting it unconditionally. Loopback is always trusted; extra proxies can be allow-listed (exact IP or string prefix, comma-separated) via the new `ws.ip.header.trusted` config key — default-deny so the header can't be spoofed from the open internet to evade per-IP rate limiting and IP bans. Also take only the first comma token when setting the game-session WS_IP. Leak cleanup (C4): - WiredVariableReferenceSupport.invalidateRoom(): drop a room's shared wired-variable assignment caches; called from Room.dispose so the static USER/ROOM_ASSIGNMENT_CACHE maps don't retain entries for the JVM lifetime. - SessionResumeManager.parkHabbo: if the scheduler refuses the grace-expiry task (future == null), disconnect immediately instead of parking an un-reapable GhostSession that would pin the Habbo + room refs forever. Note: ws.ip.header.trusted defaults to loopback-only; deployments whose proxy is on another host must add its IP/prefix to that key or client IPs will collapse to the proxy address.