Spring Boot - HandlerInterceptor 不呈现资源文件

IT小君   2022-09-15T08:03:38

我尝试寻找可以解决我的问题的线程。这个对我不起作用:

Spring Boot,Java Config - 在名称为“dispatcherServlet”的 DispatcherServlet 中找不到具有 URI [/...] 的 HTTP 请求的映射

我正在使用WebSecurityConfigurerAdapterHandlerInterceptor

这是我的网络安全的内容

@Override
protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        http.authorizeRequests()
            .antMatchers("/static/**"
                , "/css/**"
                , "/js/**"
                , "/scss/**"
                , "/fonts/**"
                , "/emails/**"
                , "/*.css"
                , "/*.js"
                , "/*.scss"
                , "/*.eot"
                , "/*.svg"
                , "/*.ttf"
                , "/*.woff*"
                , "/*.otf"
                , "/*.ico"
                , ForgotPasswordController.URL.FORGOT_PASS
                , ForgotPasswordController.URL.RESET_PASS
                , LoginController.URL.REGISTER
                , LoginController.URL.LOGIN
                , LoginController.URL.ROOT)
            .permitAll()
            .anyRequest()
            .access(getAllRoles())
            .and().formLogin()
            .loginPage("/login").permitAll()
            .usernameParameter("userId")
            .passwordParameter("pass")
            .failureHandler(authenticationFailureController)
            .defaultSuccessUrl("/home", true)
            .loginProcessingUrl("/login_processing").and()
            .exceptionHandling().accessDeniedPage("/access-forbidden");
  }

它工作正常,但是当我尝试添加一个 HandlerInterceptor (用于审计跟踪目的)时,它根本不会加载任何资源文件,即使我permitAll()在我的网络安全配置中添加了这些资源文件

这是我的处理程序拦截器:

@Service
public class OAuthSessionInterceptor implements HandlerInterceptor {
    private static final Logger logger = LoggerFactory.getLogger(OAuthSessionInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        logger.error("--------- preHandle ---------");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        logger.error("--------- postHandle ---------");
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        logger.error("--------- afterCompletion ---------");
    }
}

这是它返回的内容,它为资源文件提供了404 未找到

在此处输入图像描述

这是项目结构,我专注于资源部分:

在此处输入图像描述

点击广告,支持我们为你提供更好的服务
评论(0)