Skip to content

Commit d3bd2c8

Browse files
authored
Add username to logs (#526)
1 parent 715cda2 commit d3bd2c8

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package fr.insee.onyxia.api.security;
2+
3+
import fr.insee.onyxia.api.configuration.properties.RegionsConfiguration;
4+
import fr.insee.onyxia.api.services.UserProvider;
5+
import jakarta.servlet.FilterChain;
6+
import jakarta.servlet.ServletException;
7+
import jakarta.servlet.http.HttpServletRequest;
8+
import jakarta.servlet.http.HttpServletResponse;
9+
import java.io.IOException;
10+
import org.slf4j.MDC;
11+
import org.springframework.beans.factory.annotation.Autowired;
12+
import org.springframework.stereotype.Component;
13+
import org.springframework.web.filter.OncePerRequestFilter;
14+
15+
@Component
16+
public class LogUserInfoFilter extends OncePerRequestFilter {
17+
18+
private UserProvider userProvider;
19+
20+
private RegionsConfiguration regionsConfiguration;
21+
22+
@Autowired
23+
public LogUserInfoFilter(UserProvider userProvider, RegionsConfiguration regionsConfiguration) {
24+
this.userProvider = userProvider;
25+
this.regionsConfiguration = regionsConfiguration;
26+
}
27+
28+
@Override
29+
protected void doFilterInternal(
30+
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
31+
throws ServletException, IOException {
32+
try {
33+
MDC.put(
34+
"username",
35+
userProvider.getUser(regionsConfiguration.getDefaultRegion()).getIdep());
36+
} catch (Exception ignored) {
37+
38+
}
39+
filterChain.doFilter(request, response);
40+
MDC.clear();
41+
}
42+
}

onyxia-api/src/test/java/fr/insee/onyxia/api/UserControllerTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import fr.insee.onyxia.api.configuration.SecurityConfig;
1313
import fr.insee.onyxia.api.configuration.properties.RegionsConfiguration;
1414
import fr.insee.onyxia.api.controller.api.user.UserController;
15+
import fr.insee.onyxia.api.services.UserProvider;
1516
import fr.insee.onyxia.api.services.utils.HttpRequestUtils;
1617
import fr.insee.onyxia.api.user.OnyxiaUserProvider;
1718
import fr.insee.onyxia.model.OnyxiaUser;
@@ -41,6 +42,8 @@ public class UserControllerTest extends BaseTest {
4142

4243
@MockBean private OnyxiaUserProvider onyxiaUserProvider;
4344

45+
@MockBean private UserProvider userProvider;
46+
4447
@BeforeEach
4548
public void setUp() {
4649
User user = new User();

0 commit comments

Comments
 (0)