mirror of
https://github.com/corda/corda.git
synced 2024-12-30 17:57:02 +00:00
Move checkPayloadIs out of the public API (#3279)
This commit is contained in:
parent
c81951fbff
commit
34a480d7e3
@ -10,14 +10,12 @@ import net.corda.core.cordapp.CordappContext
|
|||||||
import net.corda.core.crypto.*
|
import net.corda.core.crypto.*
|
||||||
import net.corda.core.identity.CordaX500Name
|
import net.corda.core.identity.CordaX500Name
|
||||||
import net.corda.core.node.ServicesForResolution
|
import net.corda.core.node.ServicesForResolution
|
||||||
import net.corda.core.serialization.SerializationContext
|
import net.corda.core.serialization.*
|
||||||
import net.corda.core.serialization.SerializedBytes
|
|
||||||
import net.corda.core.serialization.deserialize
|
|
||||||
import net.corda.core.serialization.serialize
|
|
||||||
import net.corda.core.transactions.SignedTransaction
|
import net.corda.core.transactions.SignedTransaction
|
||||||
import net.corda.core.transactions.TransactionBuilder
|
import net.corda.core.transactions.TransactionBuilder
|
||||||
import net.corda.core.transactions.WireTransaction
|
import net.corda.core.transactions.WireTransaction
|
||||||
import net.corda.core.utilities.OpaqueBytes
|
import net.corda.core.utilities.OpaqueBytes
|
||||||
|
import net.corda.core.utilities.UntrustworthyData
|
||||||
import org.bouncycastle.asn1.x500.X500Name
|
import org.bouncycastle.asn1.x500.X500Name
|
||||||
import org.bouncycastle.asn1.x500.X500NameBuilder
|
import org.bouncycastle.asn1.x500.X500NameBuilder
|
||||||
import org.bouncycastle.asn1.x500.style.BCStyle
|
import org.bouncycastle.asn1.x500.style.BCStyle
|
||||||
@ -506,3 +504,14 @@ fun <T> Iterable<T>.sumByLong(selector: (T) -> Long): Long = this.map { selector
|
|||||||
internal fun SignedTransaction.pushToLoggingContext() {
|
internal fun SignedTransaction.pushToLoggingContext() {
|
||||||
MDC.put("tx_id", id.toString())
|
MDC.put("tx_id", id.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun <T : Any> SerializedBytes<Any>.checkPayloadIs(type: Class<T>): UntrustworthyData<T> {
|
||||||
|
val payloadData: T = try {
|
||||||
|
val serializer = SerializationDefaults.SERIALIZATION_FACTORY
|
||||||
|
serializer.deserialize(this, type, SerializationDefaults.P2P_CONTEXT)
|
||||||
|
} catch (ex: Exception) {
|
||||||
|
throw IllegalArgumentException("Payload invalid", ex)
|
||||||
|
}
|
||||||
|
return type.castIfPossible(payloadData)?.let { UntrustworthyData(it) }
|
||||||
|
?: throw IllegalArgumentException("We were expecting a ${type.name} but we instead got a ${payloadData.javaClass.name} ($payloadData)")
|
||||||
|
}
|
||||||
|
@ -32,14 +32,3 @@ class UntrustworthyData<out T>(@PublishedApi internal val fromUntrustedWorld: T)
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline fun <T, R> UntrustworthyData<T>.unwrap(validator: (T) -> R): R = validator(fromUntrustedWorld)
|
inline fun <T, R> UntrustworthyData<T>.unwrap(validator: (T) -> R): R = validator(fromUntrustedWorld)
|
||||||
|
|
||||||
fun <T : Any> SerializedBytes<Any>.checkPayloadIs(type: Class<T>): UntrustworthyData<T> {
|
|
||||||
val payloadData: T = try {
|
|
||||||
val serializer = SerializationDefaults.SERIALIZATION_FACTORY
|
|
||||||
serializer.deserialize(this, type, SerializationDefaults.P2P_CONTEXT)
|
|
||||||
} catch (ex: Exception) {
|
|
||||||
throw IllegalArgumentException("Payload invalid", ex)
|
|
||||||
}
|
|
||||||
return type.castIfPossible(payloadData)?.let { UntrustworthyData(it) } ?: throw IllegalArgumentException("We were expecting a ${type.name} but we instead got a " +
|
|
||||||
"${payloadData.javaClass.name} ($payloadData)")
|
|
||||||
}
|
|
||||||
|
@ -12,7 +12,7 @@ import net.corda.core.serialization.SerializedBytes
|
|||||||
import net.corda.core.serialization.serialize
|
import net.corda.core.serialization.serialize
|
||||||
import net.corda.core.utilities.NonEmptySet
|
import net.corda.core.utilities.NonEmptySet
|
||||||
import net.corda.core.utilities.UntrustworthyData
|
import net.corda.core.utilities.UntrustworthyData
|
||||||
import net.corda.core.utilities.checkPayloadIs
|
import net.corda.core.internal.checkPayloadIs
|
||||||
|
|
||||||
class FlowSessionImpl(
|
class FlowSessionImpl(
|
||||||
override val counterparty: Party,
|
override val counterparty: Party,
|
||||||
|
Loading…
Reference in New Issue
Block a user