@@ -26,19 +26,50 @@ class OurRevisionListener(
26
26
override fun newRevision (revisionEntity : Any? ) {
27
27
revisionEntity as OurRevision
28
28
29
- try {
29
+ var actor: String? = null
30
+
31
+ val request = try {
30
32
val requestAttributes = RequestContextHolder .getRequestAttributes()
31
33
if (requestAttributes != null ) {
32
34
val request = (requestAttributes as ServletRequestAttributes ).request
33
- revisionEntity.actor = tokenUtil.getIdent()
34
- revisionEntity.request = request.method + " " + request.requestURI
35
+ request.method + " " + request.requestURI
35
36
} else {
36
- revisionEntity.actor = systembrukerIdent
37
+ // no exception occurred, we just don't have a request
38
+ actor = systembrukerIdent
39
+ null
37
40
}
38
- revisionEntity.traceId = Span .current().spanContext.traceId
39
41
} catch (e: Exception ) {
40
- logger.warn(" Failed to set correct actor and/or request on revision entity. Setting 'unknown'." , e)
41
- revisionEntity.actor = " unknown"
42
+ logger.debug(" No request found to set on revision entity. Setting to null." , e)
43
+ null
44
+ }
45
+
46
+ val navIdentFromToken = try {
47
+ tokenUtil.getIdent()
48
+ } catch (e: Exception ) {
49
+ logger.debug(" No NAVIdent found in token." , e)
50
+ null
51
+ }
52
+
53
+ val callingApplication = try {
54
+ tokenUtil.getCallingApplication()
55
+ } catch (e: Exception ) {
56
+ logger.warn(" Failed to get calling application from token." , e)
57
+ null
42
58
}
59
+
60
+ if (navIdentFromToken != null || callingApplication != null ) {
61
+ actor = navIdentFromToken ? : callingApplication
62
+ }
63
+
64
+ val traceId = try {
65
+ Span .current().spanContext.traceId
66
+ } catch (e: Exception ) {
67
+ logger.warn(" Failed to set traceId on revision entity. Setting 'unknown'." , e)
68
+ " unknown"
69
+ }
70
+
71
+ revisionEntity.request = request
72
+ revisionEntity.actor = actor ? : " unknown"
73
+ revisionEntity.traceId = traceId
43
74
}
44
75
}
0 commit comments