2015-10-07 2 views
0

У меня есть приложение REST для данных весны, в котором я добавил перехватчик для аутентификации & авторизации.Spring Data Rest Interceptor не работает для CustomController

private static final boolean IS_JPA_AVAILABLE = ClassUtils.isPresent("javax.persistence.EntityManager", 
      RepositoryRestMvcConfiguration.class.getClassLoader()); 



@Override 
    public JpaHelper jpaHelper() { 
     if (IS_JPA_AVAILABLE) { 

      JpaHelper helper = new JpaHelper(); 
      helper.getInterceptors().add(new MyInterceptor()); 
      return helper; 
       } else { 
      return null; 
     } 

    } 

В этом приложении у меня также несколько контроллеров. Некоторые из них - @RepositoryRestController & - это @BasePathAwareController. Я хочу вызвать перехватчик, когда к этим контроллерам приходит запрос. Для @RepositoryRestController вызывающий вызов вызывает, но для @BasePathAwareController он обходит. Как я могу заставить этот перехватчик вызвать для обоих классов контроллера?

ответ

0

Эта проблема разрешена путем добавления сопоставленного перехватчика (спасибо llya для ваших входов). В классе конфигурации я добавил следующий сопоставленный перехватчик. Таким образом, он будет вызван для всех запросов, поступающих на любой контроллер.

@Bean 
    public MappedInterceptor myMappedInterceptor() { 
     return new MappedInterceptor(new String[]{"/**"}, getSecurityInterceptor()); 
    } 

Ссылка How to add Custom Interceptor in Spring data rest (spring-data-rest-webmvc 2.3.0)

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