2016-10-12 7 views
3

Я пытаюсь добавить заголовок авторизации к моему запросу как временное обходное решение, пока мы переключаем среды. Я пытаюсь справиться с этим в перехватчике, который расширяет HandlerInterceptorAdapter.Как добавить заголовки HttpServletRequest в HandlerInterceptorAdapter?

Я использовал класс MutableHttpServletRequest, сделанный here, чтобы иметь возможность добавить заголовок к запросу, но похоже, что вы не можете каким-либо образом изменить возвращаемый запрос в перехватчике. Есть идеи?

EDIT: Или я должен был бы сделать это в фильтре?

+0

вы должны быть в состоянии изменить запрос на preHandle() в HandlerInterceptorAdapter – kuhajeyan

+0

@kuhajeyan Я не вижу способа, что вы можете изменить запрос в перехватчик, так как она фактически не возвращает объект запроса. Может, я что-то упустил? – tallkid24

ответ

-1
public class YourInterceptor extends HandlerInterceptorAdapter {  

    @Override 
    public boolean preHandle(HttpServletRequest request, 
      HttpServletResponse response, Object handler) throws Exception { 
     SomeModel model = new SomeModel(); 
     request.setAttribute("someValue", model); 
     request.addHeader("xxx","asecret"); 

     return true; 
    } 

    @Override 
    public void postHandle(HttpServletRequest request, 
      HttpServletResponse response, Object handler, 
      ModelAndView modelAndView) throws Exception { 
     //... 
     response.addHeader("dummy-header, "dummy-value"); 
    } 

    @Override 
    public void afterCompletion(HttpServletRequest request, 
      HttpServletResponse response, Object handler, Exception ex) 
      throws Exception { 
     SomeModel model = (Long) request.getAttribute("someValue"); 

    } 

} 
+2

'HttpServletRequest' не имеет метода, называемого' addHeader'. – Sal

Смежные вопросы