#spring #interceptor
#весна #перехватчик
Вопрос:
Пытаюсь добавить перехватчик в приложение. Получение ошибки определения класса не найдено и ошибка создания компонента с именем ‘RequestMappingHandlerAdapter’, определенным в пути к классу.
@EnableWebMvc
@Configuration
public class InterceptorConfig extends WebMvcConfigurerAdapter{
@Bean
AuthorizationInterceptor authorizationInterceptor() {
return new AuthorizationInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registery) {
registery.addInterceptor(authorizationInterceptor());
}
}
/
public class AuthorizationInterceptor extends HandlerInterceptorAdapter{
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler)
throws Exception{
String role = request.getHeader("role");
System.out.println("PreHandle for Interceptor");
System.out.println(request.getRequestURI() "|||||||||||||" role);
if(request.getRequestURI().equals("/getEmails")||
request.getRequestURI().equals("/screenings")||
request.getRequestURI().equals("/softskillviolations")||
request.getRequestURI().equals("/questionscores")||
request.getRequestURI().equals("/printDAOs")||
request.getRequestURI().equals("/getReport")||
request.getRequestURI().equals("/getWeeksReport")||
request.getRequestURI().equals("/getScreenerReports")||
request.getRequestURI().equals("/getTotalReport")||
request.getRequestURI().equals("/getReportWithEmail")) {
if(role!="ROLE_PANEL"||role!="ROLE_QC"||role!="ROLE_TRAINER"||role!="ROLE_STAGING") {
response.sendRedirect("/**/login");
return false;
}
}
return true;
}
}
Комментарии:
1. покажите полную трассировку стека ошибок, пожалуйста
2. кстати, вместо сравнения url внутри
preHandle
, вы можете добавить iinterceptor только для определенных путей, например:registry.addInterceptor(authorizationInterceptor()) .addPathPatterns("/admin/*") .excludePathPatterns("/admin/oldLogin");