* fixes #23067 by adding logging for None message * changed to log and then throw exception * cleaned up fromBinary logging message
This commit is contained in:
parent
2393569df2
commit
f90133499a
2 changed files with 19 additions and 4 deletions
|
|
@ -3,9 +3,12 @@
|
|||
*/
|
||||
package akka.serialization
|
||||
|
||||
import java.nio.{ ByteBuffer, ByteOrder }
|
||||
|
||||
import akka.actor.ExtendedActorSystem
|
||||
|
||||
import scala.concurrent.duration._
|
||||
import akka.testkit._
|
||||
import akka.testkit.TestEvent._
|
||||
|
||||
object DisabledJavaSerializerWarningSpec {
|
||||
final case class Msg(s: String)
|
||||
|
|
@ -42,5 +45,16 @@ class DisabledJavaSerializerWarningSpec extends AkkaSpec(
|
|||
}
|
||||
}
|
||||
|
||||
"log and throw exception for erroneous incoming messages when Java Serialization is off" in {
|
||||
EventFilter.warning(start = "Incoming message attempted to use Java Serialization", occurrences = 1).intercept {
|
||||
intercept[DisabledJavaSerializer.JavaSerializationException] {
|
||||
val byteBuffer = ByteBuffer.allocate(128).order(ByteOrder.LITTLE_ENDIAN)
|
||||
val esys = system.asInstanceOf[ExtendedActorSystem]
|
||||
val dser = DisabledJavaSerializer(esys)
|
||||
dser.fromBinary(byteBuffer, "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -345,13 +345,14 @@ final case class DisabledJavaSerializer(system: ExtendedActorSystem) extends Ser
|
|||
}
|
||||
|
||||
override def fromBinary(bytes: Array[Byte], clazz: Option[Class[_]]): AnyRef = {
|
||||
log.warning(LogMarker.Security, "Incoming message attempted to use Java Serialization even though `akka.actor.allow-java-serialization = off` was set! " +
|
||||
"Message class was: [{}]", clazz)
|
||||
log.warning(LogMarker.Security, "Incoming message attempted to use Java Serialization even though `akka.actor.allow-java-serialization = off` was set!")
|
||||
throw IllegalDeserialization
|
||||
}
|
||||
|
||||
override def fromBinary(buf: ByteBuffer, manifest: String): AnyRef = {
|
||||
this.fromBinary(empty, None)
|
||||
// we don't capture the manifest or mention it in the log as the default setting for includeManifest is set to false.
|
||||
log.warning(LogMarker.Security, "Incoming message attempted to use Java Serialization even though `akka.actor.allow-java-serialization = off` was set!")
|
||||
throw IllegalDeserialization
|
||||
}
|
||||
|
||||
override def toBinary(o: AnyRef): Array[Byte] = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue