1 @file:JvmName("Headers")
3 package org.onap.vid.logging
5 import org.onap.portalsdk.core.util.SystemProperties
6 import org.onap.vid.logging.RequestIdHeader.*
7 import javax.servlet.http.HttpServletRequest
9 enum class RequestIdHeader(val headerName: String) {
11 ONAP_ID("X-ONAP-RequestID"),
12 REQUEST_ID("X-RequestID"),
13 TRANSACTION_ID("X-TransactionID"),
14 ECOMP_ID(SystemProperties.ECOMP_REQUEST_ID),
17 fun stringEquals(header: String) = headerName.equals(header, true)
19 fun getHeaderValue(request: HttpServletRequest): String? = request.getHeader(headerName)
22 fun prioritizedRequestIdHeaders() = listOf(
29 fun highestPriorityHeader(httpRequest: HttpServletRequest): RequestIdHeader? {
30 val headers = httpRequest.headerNames.asSequence().toSet()
31 return prioritizedRequestIdHeaders().firstOrNull {
32 requestIdHeader -> headers.any { requestIdHeader.stringEquals(it) }