diff --git a/build.sbt b/build.sbt index 1c374839..8d9dfd0f 100644 --- a/build.sbt +++ b/build.sbt @@ -79,8 +79,7 @@ lazy val psforeverSettings = Seq( "io.circe" %% "circe-generic" % "0.14.1", "io.circe" %% "circe-parser" % "0.14.1", "org.scala-lang.modules" %% "scala-parallel-collections" % "1.0.3", - "org.bouncycastle" % "bcprov-jdk15on" % "1.69", - "org.codehaus.janino" % "janino" % "3.1.4" + "org.bouncycastle" % "bcprov-jdk15on" % "1.69" ), // TODO(chord): remove exclusion when SessionActor is refactored: https://github.com/psforever/PSF-LoginServer/issues/279 coverageExcludedPackages := "net\\.psforever\\.actors\\.session\\.SessionActor.*" diff --git a/config/logback.xml b/config/logback.xml index 60bcdffd..d1b04642 100644 --- a/config/logback.xml +++ b/config/logback.xml @@ -20,17 +20,9 @@ %date{ISO8601} %5level %logger{35} - %msg%n - - - - encrypted - - Unexpected packet type EncryptedPacket - - encrypted.matches(formattedMessage) - - DENY - NEUTRAL + + + Unexpected packet type EncryptedPacket - Unexpected packet type EncryptedPacket - - encrypted.matches(formattedMessage) - - DENY - NEUTRAL + + + Unexpected packet type EncryptedPacket diff --git a/server/src/main/java/net/psforever/filters/MsgRegexFilter.java b/server/src/main/java/net/psforever/filters/MsgRegexFilter.java new file mode 100644 index 00000000..77a85bb3 --- /dev/null +++ b/server/src/main/java/net/psforever/filters/MsgRegexFilter.java @@ -0,0 +1,29 @@ +package net.psforever.filters; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.filter.Filter; +import ch.qos.logback.core.spi.FilterReply; + +/** + * Disrupts a variety of messages that, when formatted, match against the configured regular expression. + * A replacement for the `EvaluatorFilter`. + */ +public class MsgRegexFilter extends Filter { + private String regex; + + @Override + public FilterReply decide(ILoggingEvent event) { + if (isStarted() && event.getFormattedMessage().matches(regex)) { + return FilterReply.DENY; + } else { + return FilterReply.NEUTRAL; + } + } + + @Override + public void start() { + if (this.regex != null) { + super.start(); + } + } +}