Skip to content

Commit 504b948

Browse files
authored
move writeKey from auth header to batch body (#121)
* remove writeKey from auth header * add instanceId to context * fix unit tests
1 parent b0ec056 commit 504b948

File tree

5 files changed

+6
-13
lines changed

5 files changed

+6
-13
lines changed

core/src/main/java/com/segment/analytics/kotlin/core/HTTPClient.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.segment.analytics.kotlin.core
22

33
import com.segment.analytics.kotlin.core.Constants.LIBRARY_VERSION
4-
import com.segment.analytics.kotlin.core.utilities.encodeToBase64
54
import java.io.BufferedReader
65
import java.io.Closeable
76
import java.io.IOException
@@ -12,7 +11,6 @@ import java.net.MalformedURLException
1211
import java.net.URL
1312
import java.util.zip.GZIPOutputStream
1413
class HTTPClient(private val writeKey: String) {
15-
internal val authHeader = authorizationHeader(writeKey)
1614

1715
fun settings(cdnHost: String): Connection {
1816
val connection: HttpURLConnection =
@@ -29,7 +27,6 @@ class HTTPClient(private val writeKey: String) {
2927
fun upload(apiHost: String): Connection {
3028
val connection: HttpURLConnection = openConnection("https://$apiHost/b")
3129
connection.setRequestProperty("Content-Type", "text/plain")
32-
connection.setRequestProperty("Authorization", authHeader)
3330
connection.doOutput = true
3431
connection.setChunkedStreamingMode(0)
3532
return connection.createPostConnection()
@@ -56,11 +53,6 @@ class HTTPClient(private val writeKey: String) {
5653
connection.doInput = true
5754
return connection
5855
}
59-
60-
private fun authorizationHeader(writeKey: String): String {
61-
val auth = "$writeKey:"
62-
return "Basic ${encodeToBase64(auth)}"
63-
}
6456
}
6557

6658
/**

core/src/main/java/com/segment/analytics/kotlin/core/platform/plugins/ContextPlugin.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.segment.analytics.kotlin.core.utilities.putAll
88
import kotlinx.serialization.json.JsonObject
99
import kotlinx.serialization.json.buildJsonObject
1010
import kotlinx.serialization.json.put
11+
import java.util.*
1112

1213
/**
1314
* Analytics plugin used to populate events with basic context data.
@@ -18,12 +19,14 @@ class ContextPlugin : Plugin {
1819
override lateinit var analytics: Analytics
1920

2021
private lateinit var library: JsonObject
22+
private val instanceId = UUID.randomUUID().toString()
2123

2224
companion object {
2325
// Library
2426
const val LIBRARY_KEY = "library"
2527
const val LIBRARY_NAME_KEY = "name"
2628
const val LIBRARY_VERSION_KEY = "version"
29+
const val INSTANCE_ID_KEY = "instanceId"
2730
}
2831

2932
override fun setup(analytics: Analytics) {
@@ -41,6 +44,7 @@ class ContextPlugin : Plugin {
4144

4245
// putLibrary
4346
put(LIBRARY_KEY, library)
47+
put(INSTANCE_ID_KEY, instanceId)
4448
}
4549
event.context = newContext
4650
}

core/src/test/kotlin/com/segment/analytics/kotlin/core/AnalyticsTests.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class AnalyticsTests {
4747
put(ContextPlugin.LIBRARY_VERSION_KEY, Constants.LIBRARY_VERSION)
4848
}
4949
put(ContextPlugin.LIBRARY_KEY, lib)
50+
put(ContextPlugin.INSTANCE_ID_KEY, "qwerty-qwerty-123")
5051
}
5152

5253
private val testDispatcher = UnconfinedTestDispatcher()

core/src/test/kotlin/com/segment/analytics/kotlin/core/HTTPClientTests.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,4 @@ class HTTPClientTests {
8080
}
8181
}
8282

83-
@Test
84-
fun `authHeader is correctly computed`() {
85-
assertEquals("Basic MXZOZ1Vxd0plQ0htcWdJOVMxc09tOVVIQ3lmWXFiYVE6", httpClient.authHeader)
86-
}
87-
8883
}

core/src/test/kotlin/com/segment/analytics/kotlin/core/compat/JavaAnalyticsTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ internal class JavaAnalyticsTest {
5353
put(ContextPlugin.LIBRARY_VERSION_KEY, Constants.LIBRARY_VERSION)
5454
}
5555
put(ContextPlugin.LIBRARY_KEY, lib)
56+
put(ContextPlugin.INSTANCE_ID_KEY, "qwerty-qwerty-123")
5657
}
5758

5859
private val testDispatcher = UnconfinedTestDispatcher()

0 commit comments

Comments
 (0)