@@ -4,6 +4,7 @@ import com.intellij.openapi.diagnostic.Logger
44import com.intellij.openapi.project.Project
55import org.digma.intellij.plugin.log.Log
66import org.digma.intellij.plugin.settings.SettingsState
7+ import java.lang.IllegalArgumentException
78import java.net.URI
89import java.net.http.HttpClient
910import java.net.http.HttpRequest
@@ -18,8 +19,8 @@ internal fun getCachedToken(project: Project?): String? {
1819 return SettingsState .getInstance(project).posthogToken
1920}
2021internal fun getLatestToken (): String? {
21- val url = urlToTokenFile () ? : return null
22- val newToken = readTokenFromUrl(url ) ? : return null
22+ val uri = getUriToTokenFile () ? : return null
23+ val newToken = readTokenFromUrl(uri ) ? : return null
2324 return newToken
2425}
2526
@@ -28,11 +29,11 @@ internal fun setCachedToken(project: Project, token: String){
2829 SettingsState .getInstance(project).fireChanged()
2930}
3031
31- private fun readTokenFromUrl (tokenFileUrl : String ): String? {
32+ private fun readTokenFromUrl (tokenFileUri : URI ): String? {
3233 val httpClient = HttpClient .newHttpClient()
3334 try {
3435 val response = httpClient.send(
35- HttpRequest .newBuilder().GET ().uri(URI .create(tokenFileUrl) ).build(),
36+ HttpRequest .newBuilder().GET ().uri(tokenFileUri ).build(),
3637 HttpResponse .BodyHandlers .ofString()
3738 )
3839 if (response.statusCode() != 200 ) {
@@ -46,15 +47,29 @@ private fun readTokenFromUrl(tokenFileUrl: String): String? {
4647 return null
4748}
4849
49- private fun urlToTokenFile (): String? {
50+ private fun getUriToTokenFile (): URI ? {
51+ val content: String?
5052 try {
51- val content = object {}.javaClass.classLoader.getResource(POSTHOG_TOKEN_URL_RESOURCE_FILE_PATH )?.readText()
52- if (content == null ) {
53- Log .log(LOGGER ::warn, " Missing posthog token resource file" )
54- }
55- return content
53+ content = object {}.javaClass.classLoader.getResource(POSTHOG_TOKEN_URL_RESOURCE_FILE_PATH )?.readText()
5654 } catch (e: Exception ) {
5755 Log .warnWithException(LOGGER , e, " Failed to get posthog token resource file" )
5856 return null
5957 }
58+
59+ if (content == null ) {
60+ Log .log(LOGGER ::warn, " Missing posthog token resource file" )
61+ return null
62+ }
63+
64+ if (content.isBlank()) {
65+ Log .log(LOGGER ::warn, " Empty posthog token resource file" )
66+ return null
67+ }
68+
69+ return try {
70+ URI .create(content)
71+ } catch (e: IllegalArgumentException ){
72+ Log .log(LOGGER ::warn, " Content of posthog token resource file is not a valid uri" )
73+ null
74+ }
6075}
0 commit comments