blob: a0bbceea1455e3750c78f61bab0dc21a8c9570a0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
@file:JvmName("Headers")
package org.onap.vid.logging
import org.onap.portalsdk.core.util.SystemProperties
import org.onap.vid.logging.RequestIdHeader.*
import javax.servlet.http.HttpServletRequest
enum class RequestIdHeader(val headerName: String) {
ONAP_ID("X-ONAP-RequestID"),
REQUEST_ID("X-RequestID"),
TRANSACTION_ID("X-TransactionID"),
ECOMP_ID(SystemProperties.ECOMP_REQUEST_ID),
;
fun stringEquals(header: String) = headerName.equals(header, true)
fun getHeaderValue(request: HttpServletRequest): String? = request.getHeader(headerName)
}
fun prioritizedRequestIdHeaders() = listOf(
ONAP_ID,
REQUEST_ID,
TRANSACTION_ID,
ECOMP_ID
)
fun highestPriorityHeader(httpRequest: HttpServletRequest): RequestIdHeader? {
val headers = httpRequest.headerNames.asSequence().toSet()
return prioritizedRequestIdHeaders().firstOrNull {
requestIdHeader -> headers.any { requestIdHeader.stringEquals(it) }
}
}
|