Skip to content

Commit 933160d

Browse files
committed
Fjerner sporing av bruker helt, i saksbehandling logger vi saksbehandler-ident
1 parent e176f14 commit 933160d

File tree

3 files changed

+4
-61
lines changed

3 files changed

+4
-61
lines changed

log/main/no/nav/tilleggsstonader/libs/log/filter/LogFilter.kt

+1-37
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package no.nav.tilleggsstonader.libs.log.filter
22

33
import jakarta.servlet.FilterChain
4-
import jakarta.servlet.http.Cookie
54
import jakarta.servlet.http.HttpFilter
65
import jakarta.servlet.http.HttpServletRequest
76
import jakarta.servlet.http.HttpServletResponse
@@ -18,14 +17,13 @@ import java.io.EOFException
1817
/**
1918
* @param sporBruker settes hvis vi skal sette cookie som sporer brukeren for å hjelpe ved feilsøing
2019
*/
21-
class LogFilter(val sporBruker: Boolean) : HttpFilter() {
20+
class LogFilter : HttpFilter() {
2221

2322
override fun doFilter(
2423
request: HttpServletRequest,
2524
response: HttpServletResponse,
2625
filterChain: FilterChain,
2726
) {
28-
sporBruker(request, response)
2927
val consumerId = request.getHeader(NavHttpHeaders.NAV_CONSUMER_ID.asString())
3028
val callId = resolveCallId(request)
3129
MDC.put(MDC_CALL_ID, callId)
@@ -43,24 +41,6 @@ class LogFilter(val sporBruker: Boolean) : HttpFilter() {
4341
}
4442
}
4543

46-
private fun sporBruker(
47-
request: HttpServletRequest,
48-
response: HttpServletResponse,
49-
) {
50-
if (!sporBruker) {
51-
return
52-
}
53-
var userId = resolveUserId(request)
54-
if (userId.isNullOrEmpty()) {
55-
// user-id tracking only works if the client is stateful and supports cookies.
56-
// if no user-id is found, generate one for any following requests but do not use it on the
57-
// current request to avoid generating large numbers of useless user-ids.
58-
userId = IdUtils.generateId()
59-
generateUserIdCookie(response, userId)
60-
}
61-
MDC.put(MDC_USER_ID, userId)
62-
}
63-
6444
private fun filterWithErrorHandling(
6545
request: HttpServletRequest,
6646
response: HttpServletResponse,
@@ -96,20 +76,6 @@ class LogFilter(val sporBruker: Boolean) : HttpFilter() {
9676
?: IdUtils.generateId()
9777
}
9878

99-
private fun generateUserIdCookie(response: HttpServletResponse, userId: String) {
100-
val cookie = Cookie(RANDOM_USER_ID_COOKIE_NAME, userId).apply {
101-
path = "/"
102-
maxAge = ONE_MONTH_IN_SECONDS
103-
isHttpOnly = true
104-
secure = true
105-
}
106-
response.addCookie(cookie)
107-
}
108-
109-
private fun resolveUserId(request: HttpServletRequest): String? {
110-
return request.cookies?.firstOrNull { it -> RANDOM_USER_ID_COOKIE_NAME == it.name }?.value
111-
}
112-
11379
companion object {
11480
// there is no consensus in NAV about header-names for correlation ids, so we support 'em all!
11581
// https://nav-it.slack.com/archives/C9UQ16AH4/p1538488785000100
@@ -127,7 +93,5 @@ class LogFilter(val sporBruker: Boolean) : HttpFilter() {
12793
"X-Request-Id",
12894
)
12995
private val LOG = LoggerFactory.getLogger(LogFilter::class.java)
130-
private const val RANDOM_USER_ID_COOKIE_NAME = "RUIDC"
131-
private const val ONE_MONTH_IN_SECONDS = 60 * 60 * 24 * 30
13296
}
13397
}

log/main/no/nav/tilleggsstonader/libs/log/filter/LogFilterConfiguration.kt

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
package no.nav.tilleggsstonader.libs.log.filter
22

33
import org.slf4j.LoggerFactory
4-
import org.springframework.beans.factory.annotation.Value
54
import org.springframework.boot.web.servlet.FilterRegistrationBean
65
import org.springframework.context.annotation.Bean
76
import org.springframework.context.annotation.Configuration
87

98
@Configuration
10-
class LogFilterConfiguration(
11-
@Value("\${log.sporBruker:false}")
12-
private val sporBruker: Boolean,
13-
) {
9+
class LogFilterConfiguration {
1410

1511
private val logger = LoggerFactory.getLogger(javaClass)
1612

1713
@Bean
1814
fun logFilter(): FilterRegistrationBean<LogFilter> {
1915
logger.info("Registering LogFilter filter")
2016
val filterRegistration = FilterRegistrationBean<LogFilter>()
21-
filterRegistration.filter = LogFilter(sporBruker = sporBruker)
17+
filterRegistration.filter = LogFilter()
2218
filterRegistration.order = 1
2319
return filterRegistration
2420
}

log/test/no/nav/tilleggsstonader/libs/log/filter/LogFilterTest.kt

+1-18
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import io.mockk.mockk
55
import jakarta.servlet.http.HttpServletRequest
66
import jakarta.servlet.http.HttpServletResponse
77
import no.nav.tilleggsstonader.libs.log.NavHttpHeaders
8-
import no.nav.tilleggsstonader.libs.log.mdc.MDCConstants
98
import org.assertj.core.api.Assertions.assertThat
109
import org.junit.jupiter.api.BeforeEach
1110
import org.junit.jupiter.api.Test
@@ -15,7 +14,7 @@ class LogFilterTest {
1514

1615
private lateinit var httpServletRequest: HttpServletRequest
1716
private lateinit var httpServletResponse: HttpServletResponse
18-
private val logFilter = LogFilter(true)
17+
private val logFilter = LogFilter()
1918

2019
@BeforeEach
2120
fun setup() {
@@ -53,22 +52,6 @@ class LogFilterTest {
5352
.isEqualTo(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)
5453
}
5554

56-
@Test
57-
fun `skal ikke logge bruker hvis sporBruker=true`() {
58-
logFilter.doFilter(httpServletRequest, httpServletResponse) { _, _ ->
59-
assertThat(MDC.get(MDCConstants.MDC_USER_ID)).isNotNull()
60-
}
61-
}
62-
63-
@Test
64-
fun `skal ikke logge bruker hvis sporBruker=false`() {
65-
val logFilter = LogFilter(sporBruker = false)
66-
67-
logFilter.doFilter(httpServletRequest, httpServletResponse) { _, _ ->
68-
assertThat(MDC.get(MDCConstants.MDC_USER_ID)).isNull()
69-
}
70-
}
71-
7255
private val mockHttpServletRequest = mockk<HttpServletRequest>(relaxed = true).also {
7356
every { it.method } returns "GET"
7457
every { it.requestURI } returns "/test/path"

0 commit comments

Comments
 (0)