【问题标题】:Spring Data Rest Interceptor not working for CustomControllerSpring Data Rest 拦截器不适用于 CustomController
【发布时间】:2015-10-09 22:41:02
【问题描述】:

我有一个 spring data REST 应用程序,我在其中添加了一个用于身份验证和授权的拦截器。

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,它被绕过。 如何让两个控制器类都调用这个拦截器?

【问题讨论】:

    标签: spring-data-rest


    【解决方案1】:

    通过添加映射拦截器解决了这个问题(感谢 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)

    【讨论】:

      猜你喜欢
      • 2018-04-07
      • 2015-02-23
      • 1970-01-01
      • 2015-12-31
      • 2013-11-07
      • 2021-05-15
      • 2018-08-09
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多