Я устанавливаю атрибут запроса с именем Id
в методе с префиксом RequestHandlerInterceptor
.Я получаю этот идентификатор из токена jwt.
protected UserContext getCurrentUserContext() {
return UserContextHolder.getCurrentContext();
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws AuthenticationException {
UserProfile userProfile = null;
try {
UserContext userContext = getCurrentUserContext();
userProfile = userContext.getUserProfile();
request.setAttribute("Id", String.valueOf(userProfile.getId()));
return true;
}
, используя @RequestAttribute
в методе моего контроллера для получения этого атрибута.
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id, @RequestAttribute("Id") String userId) throws EntityNotFoundException, ApiException {
excessService.deleteExcess(id, userId);
}
Но мои интеграционные тесты не пройдены, хотя я переопределилthis RequestHandlerInterceptor
.
requestHandlerInterceptor = new RequestHandlerInterceptor() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws AuthenticationException {
request.setAttribute("Id", "123456");
return true;
}
}
Как можно смоделировать этот атрибут запроса в интеграционном тесте, чтобы передать это значение 'id' в методы моего контроллера?