Skip to content

Commit 774136f

Browse files
authored
Merge pull request #118 from dailymotion/be-more-strict-with-omsdk-verification-scripts
Be more strict with OMSDK verificationScripts parsing
2 parents cb91441 + 8722bec commit 774136f

File tree

3 files changed

+46
-5
lines changed

3 files changed

+46
-5
lines changed

sdk/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ dependencies {
3030
implementation("androidx.core:core-ktx:1.5.0")
3131
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.5.10")
3232
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
33+
34+
testImplementation("junit:junit:4.13.2")
3335
}
3436

3537
tasks.withType<org.jetbrains.dokka.gradle.DokkaTask> {

sdk/src/main/java/com/dailymotion/android/player/sdk/iab/OMHelper.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,22 +311,22 @@ object OMHelper {
311311
/**
312312
* Parse the verificationScriptsList from the payload of AdLoadedEvent
313313
*/
314-
private fun parseVerificationScriptData(payload: String?): List<VerificationScriptData> {
314+
internal fun parseVerificationScriptData(payload: String?): List<VerificationScriptData> {
315315
return payload
316316
?.split("&")
317317
?.groupBy {
318-
val m = Pattern.compile("verificationScripts\\[(.*)]\\[(.*)]=(.*)").matcher(it)
318+
val m = Pattern.compile("verificationScripts\\[([0-9]*)]\\[(.*)]=(.*)").matcher(it)
319319
if (m.matches()) m.group(1) else null
320320
}
321321
?.filterKeys { it != null }
322322
?.map { group ->
323323
VerificationScriptData(
324324
vendorKey = group.value.find { it.contains("verificationScripts[${group.key}][vendor]") }
325-
?.split("=")?.get(1) ?: "",
325+
?.split("=", limit = 2)?.get(1) ?: "",
326326
url = group.value.find { it.contains("verificationScripts[${group.key}][resource]") }
327-
?.split("=")?.get(1) ?: "",
327+
?.split("=", limit = 2)?.get(1) ?: "",
328328
parameters = group.value.find { it.contains("verificationScripts[${group.key}][parameters]") }
329-
?.split("=")?.get(1) ?: ""
329+
?.split("=", limit = 2)?.get(1) ?: ""
330330
)
331331
}
332332
?: emptyList()

0 commit comments

Comments
 (0)