Filter chat messages by allowed servers defined in application.properties.

This commit is contained in:
akastijn 2026-07-19 01:24:50 +02:00
parent 0233958118
commit 7a360d1a26
2 changed files with 5 additions and 0 deletions

View File

@ -9,6 +9,7 @@ import com.alttd.altitudeweb.services.chat.event_publisher.EventPublisher;
import com.alttd.altitudeweb.setup.Connection; import com.alttd.altitudeweb.setup.Connection;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -25,6 +26,8 @@ import java.util.stream.Collectors;
public class ChatService { public class ChatService {
private static final Duration MAX_AGE = Duration.ofHours(1); private static final Duration MAX_AGE = Duration.ofHours(1);
@Value("${chat.allowed-servers}")
private String[] allowedServers;
private final NavigableMap<Instant, ChatMessage> chatMessages = new TreeMap<>(); private final NavigableMap<Instant, ChatMessage> chatMessages = new TreeMap<>();
private final EventPublisher eventPublisher; private final EventPublisher eventPublisher;
@ -70,6 +73,7 @@ public class ChatService {
.collect(Collectors.joining(",", "[", "]")); .collect(Collectors.joining(",", "[", "]"));
String jsonMessageList = chatMessageList.stream() String jsonMessageList = chatMessageList.stream()
.filter(ChatMessage::isNotBlocked) .filter(ChatMessage::isNotBlocked)
.filter(chatMessage -> Arrays.asList(allowedServers).contains(chatMessage.getServer()))
.map(ChatMessageMapper::toJson) .map(ChatMessageMapper::toJson)
.collect(Collectors.joining(",", "[", "]")); .collect(Collectors.joining(",", "[", "]"));

View File

@ -19,6 +19,7 @@ spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
chat.allowed-ip=${ALLOWED_IP:10.0.0.0/24} chat.allowed-ip=${ALLOWED_IP:10.0.0.0/24}
chat.allowed-servers=${ALLOWED_SERVERS:bayou,lobby,creative}
management.endpoints.web.exposure.include=mappings management.endpoints.web.exposure.include=mappings
server.forward-headers-strategy=native server.forward-headers-strategy=native
server.tomcat.remoteip.remote-ip-header=CF-Connecting-IP server.tomcat.remoteip.remote-ip-header=CF-Connecting-IP