Я изменил конфигурацию приложения Spring mvc от xml до кода. С момента изменения все введенные свойства в моих перехватчиках равны null (authenticationService).Как ввести свойство перехватчику в Spring MVC
код выглядит следующим образом:
public class WebAuthenticationInterceptor extends HandlerInterceptorAdapter {
@Resource(type=WebAuthenticationService.class)
private IAuthenticationService authenticationService;
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
if(authenticationService.authenticate(request).authenticated == false)
{
if(isAjax(request))
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
else
response.sendRedirect(String.format("%s/#/account/logout", request.getContextPath()));
return false;
}
return true;
}
public static boolean isAjax(HttpServletRequest request) {
return "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));
}
}
и перехватчик конфигурации:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new WebAuthenticationInterceptor()).addPathPatterns("/home/**");
registry.addInterceptor(new MobileAuthenticationInterceptor()).addPathPatterns("/api/**");
}
Не могли бы вы заявить, что я делаю неправильно?
Спасибо
Вы создаете объект, используя ключевое слово 'new'. Вместо этого попробуйте определить 'WebAuthenticationInterceptor' и' MobileAuthenticationInterceptor' как '@ Bean' в конфигурации Spring. – dimchez
@dimchez Добавьте это как ответ. –
@TomG ok, отправил мой комментарий как ответ – dimchez