=act #23067 by adding logging for None message (#23103)

* 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:
Duncan DeVore 2017-06-14 03:27:33 -04:00 committed by Konrad `ktoso` Malawski
parent 2393569df2
commit f90133499a
2 changed files with 19 additions and 4 deletions

View file

@ -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, "")
}
}
}
}
}

View file

@ -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] = {