Check that hostName is always localhost for requests to builtin server

GitOrigin-RevId: 5f447f17119760f0bab9cfc356ec7b2d387e63b3
This commit is contained in:
Ivan Chirkov
2020-03-10 12:03:19 +00:00
committed by intellij-monorepo-bot
parent 74ef421118
commit a8e3236921
@@ -4,7 +4,9 @@ package org.jetbrains.ide
import com.intellij.diagnostic.StartUpPerformanceService
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ex.ApplicationInfoEx
import com.intellij.openapi.diagnostic.logger
import com.intellij.util.io.hostName
import com.intellij.util.io.origin
import com.intellij.util.net.NetUtils
import io.netty.buffer.Unpooled
import io.netty.channel.ChannelHandlerContext
@@ -13,6 +15,8 @@ import io.netty.handler.codec.http.HttpRequest
import io.netty.handler.codec.http.QueryStringDecoder
import org.jetbrains.io.response
private val LOG = logger<StartUpMeasurementService>()
internal class StartUpMeasurementService : RestService() {
override fun getServiceName() = "startUpMeasurement"
@@ -42,5 +46,8 @@ internal class StartUpMeasurementService : RestService() {
private fun isTrustedHostName(request: HttpRequest): Boolean {
val hostName = request.hostName ?: return false
if (!NetUtils.isLocalhost(hostName)) {
LOG.error("Expected 'request.hostName' to be localhost. hostName=$hostName, origin=${request.origin}")
}
return hostName == "ij-perf.jetbrains.com" || hostName == "ij-perf.develar.org" || NetUtils.isLocalhost(hostName)
}