Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Interceptador bloqueia recursos estáticos

Olá, como eu não queria misturar CSS e JS na página HTML, eu criei arquivos separados dentro da pasta 'static' do projeto, ficando: 'src/main/resources/static/css/estilo.css' e 'src/main/resources/static/js/oferta.js'. Funcionava tudo normalmente, até adicionar a classe WebConfig no projeto. Aí então, achei em alguns sites para usar o método 'excludePathPatterns'.... Porém eis o problema: Uma mensagem de erro do Spring é retornada. Vou postar abaixo a minha classe e mensagem, respectivamente:

package br.com.alura.mvc.mudi;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import br.com.alura.mvc.mudi.interceptor.InterceptadorDeAcessos;

@Configuration
public class WebConfig extends WebMvcConfigurationSupport
{
    @Override
    protected void addInterceptors(InterceptorRegistry registry)
    {
        registry.addInterceptor(new InterceptadorDeAcessos()).addPathPatterns("/**").excludePathPatterns("/**/*.js", "/**/*.css");
    }
}

Mensagem do Console:

***************************
APPLICATION FAILED TO START
***************************

Description:

Invalid mapping pattern detected: /**/*.css
^
No more pattern data allowed after {*...} or ** pattern element

Action:

Fix this pattern in your application or switch to the legacy parser implementation with `spring.mvc.pathpattern.matching-strategy=ant_path_matcher`

E, por fim, se eu usar do jeito que o instrutor mostrou, o console exibe a seguinte mensagem:

2020-12-03 03:56:37.284 WARN 1528 --- [nio-8080-exec-2] o.s.web.servlet.PageNotFound : No mapping for GET /css/estilo.css

1 resposta
solução!

Após diversas pesquisas e tentativas do Stack Overflow, com os links: https://github.com/spring-projects/spring-boot/issues/17502 e https://stackoverflow.com/questions/31082981/spring-boot-adding-http-request-interceptors, a solução para o problema foi alterar a classe estendida, agora é uma interface:

package br.com.alura.mvc.mudi;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import br.com.alura.mvc.mudi.interceptor.InterceptadorDeAcessos;

@Configuration
public class WebConfig implements WebMvcConfigurer
{
    @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        registry.addInterceptor(new InterceptadorDeAcessos()).addPathPatterns("/**");
    }
}