@@ -5,30 +5,35 @@ import io.micrometer.core.annotation.Counted
5
5
import no.nav.tilgangsmaskin.populasjonstilgangskontroll.domain.AnsattId
6
6
import no.nav.tilgangsmaskin.populasjonstilgangskontroll.domain.BrukerId
7
7
import no.nav.tilgangsmaskin.populasjonstilgangskontroll.utils.ObjectUtil.mask
8
+ import org.apache.kafka.clients.consumer.ConsumerRecord
8
9
import org.slf4j.LoggerFactory.getLogger
9
10
import org.springframework.kafka.annotation.KafkaListener
11
+ import org.springframework.kafka.listener.adapter.RecordFilterStrategy
10
12
import org.springframework.stereotype.Component
11
13
12
14
@Component
13
15
class NomHendelseKonsument (private val nom : NomOperasjoner , private val handler : EventResultHandler ) {
14
16
15
17
private val log = getLogger(NomHendelseKonsument ::class .java)
16
- @KafkaListener(topics = [" #{'\$ {nom.topic}'}" ])
18
+ @KafkaListener(topics = [" #{'\$ {nom.topic}'}" ], filter = " fnrFilterStrategy " )
17
19
fun listen (hendelse : NomHendelse ) {
18
20
with (hendelse) {
19
21
log.info(" Mottatt hendelse: {}" , this )
20
22
runCatching {
21
- validate(navident, personident).also {
22
- nom.lagre(it.first, it.second, startdato,sluttdato)
23
- }
23
+ nom.lagre(AnsattId (navident), BrukerId (personident), startdato, sluttdato)
24
24
}.onFailure {
25
25
handler.handleFailure(navident,personident,it)
26
26
}.onSuccess {
27
27
handler.handleOK(navident, personident)
28
28
}
29
29
}
30
30
}
31
- private fun validate (ansattId : String , brukerId : String ) = Pair (AnsattId (ansattId),BrukerId (brukerId))
31
+ }
32
+
33
+ @Component
34
+ class FnrFilterStrategy : RecordFilterStrategy <String , NomHendelse > {
35
+ private val ikke11Tall = Regex (" (?!\\ d{11})" )
36
+ override fun filter (record : ConsumerRecord <String , NomHendelse >) = record.value().personident.matches(ikke11Tall)
32
37
}
33
38
34
39
@Component
@@ -39,6 +44,6 @@ class EventResultHandler {
39
44
log.info(" Lagret fødselsnummer ${brukerId.mask()} for $ansattId OK" )
40
45
}
41
46
fun handleFailure (ansattId : String , brukerId : String , e : Throwable ) {
42
- log.error(" Kunne ikke lagre fødselsnummer $brukerId for $ansattId (${e.message} )" , e)
47
+ log.error(" Kunne ikke lagre fødselsnummer ${ brukerId.mask()} for $ansattId (${e.message} )" , e)
43
48
}
44
49
}
0 commit comments