I would like to inject principal object in controller test, but it is always null. Im already setting the authentication object to SecurityContextHolder
SecurityContextHolder.getContext().setAuthentication(authentication);
this is my setup before
@Autowired
private WebApplicationContext wac;
@Before
public void abstractControllerSetUp() {
securityUser = getPrincipal();
authentication = logIn();
mockMvc = webAppContextSetup(wac).build();
}
but when I call
mockMvc.perform(put("/partner/notifications/activate")
.content(toJson(command))
.with(user(securityUser))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
the principal is alwyas null, it works when app running.
@PutMapping("/activate")
public void activateNotification(@RequestBody NotificationCommand command, @AuthenticationPrincipal Principal principal) {