Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

12
respostas

Erro após implementar o spring security. "Mapping not found:"

Antes de implementar o spring security tudo funcionava, porem agora esta dando o erro "Mapping not found: qualquer controller que eu chame". Eu vi que alguns outros alunos também tiveram esse erro, mas nenhuma resposta do forum foi conclusiva ou me ajudou a resolver, que era basicamente ajustar as versões do spring no pom.xml.

Vou deixar metade do erro aqui em baixo.

E se tiver alguma alternativa melhor de se criar urls invés de

"${s:mvcUrl('CC#lista').build() }

eu gostaria de sugestões.

GRAVE: Servlet.service() for servlet [dispatcher] in context with path [/bitbank] threw exception [An exception occurred processing [WEB-INF/views/home.jsp] at line [15]

12:             <p>${sucesso}</p>
13:             <p>${falha}</p>
14:             <tr>
15:                 <a href="${s:mvcUrl('CC#lista').build() }"> lista clientes </a>
16:                 <a href="${s:mvcUrl('NCC#form').build() }">Quero serBitBank</a>
17: 
18:             </tr>


Stacktrace:] with root cause
java.lang.IllegalArgumentException: Mapping not found: CC#lista
    at org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMappingName(MvcUriComponentsBuilder.java:463)
    at org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder.fromMappingName(MvcUriComponentsBuilder.java:433)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.apache.el.parser.AstFunction.getValue(AstFunction.java:199)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:137)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:701)
    at org.apache.jsp.WEB_002dINF.views.home_jsp._jspService(home_jsp.java:149)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
    at org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequestDispatcher.forward(HeaderWriterFilter.java:143)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:170)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1370)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1116)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
12 respostas

Olá Bryan!

Provavelmente esse erro está acontecendo no método configure da classe SecurityConfiguration. Verifique se a URL do controller está com permissão de acesso.

Como você declarou seu controller? Posta ele aqi pra darmos uma analisada, por favor

Abraço!

Gulherme, se puder dar uma olhada esse é meu SecurityConfiguration. Não consegui achar o que pode ser que cause o erro https://github.com/BryanMotta/FormacaoJava/blob/master/src/main/java/br/com/bitbank/configuracao/SecurityConfiguration.java

Otávio, meu controller. Desde o mais simples possivel não funciona https://github.com/BryanMotta/FormacaoJava/blob/master/src/main/java/br/com/bitbank/controller/HomeController.java

Jsp https://github.com/BryanMotta/FormacaoJava/blob/master/src/main/webapp/WEB-INF/views/home0.jsp

Porem usando

<a href="${contextPath}/cliente/lista"> lista clientes </a>

como exemplo funciona normal, porem

<a href="${s:mvcUrl('CC#lista').build() }">

não funciona.

Qua seria o melhor forma para substituir a função s:mvcUrl ?

Olá Bryan!

Tenta trocar isso:

.antMatchers("/").permitAll()

Por isso:

.antMatchers("/*").permitAll()

Veja se funciona!

Poxa, infelizmente não. Estou a dois dias tentando resolver e nada, acho que vou parar de usar s:mvcUrl mesmo, já não é a primeira vez que essa função me causa problemas sem sentido.

Faz o seguinte, no seu controller:

@RequestMapping(value = "/cliente" ,name="cliente_controller")

Na sua página você irá colocar

${s:mvcUrl('cliente_controller').build()}

Eu estava enfrentando o mesmo problema. Após implementar o Spring Security quebrou todos os mvcUrl. Depois de quebrar muito a cabeça, consegui resolver utilizando a versão 4.X do Spring.

Estou utilizando as seguintes versões

<spring.version>4.3.25.RELEASE</spring.version>
<spring.security.version>4.2.13.RELEASE</spring.security.version>

Pelo visto tem algum bug na versão 5.X mas não consegui encontrar nada na internet falando sobre isso.

Otávio, tentei aqui e não mudou nada, mesmo erro.

André, tinha chegado a tentar as versões 4.x antes também, mas nada de mudar. Tentei a sua em especifico aqui agora e nada também. Eu fiz a mesma coisa que você, fiquei os últimos 4 dias direto pesquisando e tetando resolver , acabou que optei por reescrever todos os links do projeto.

Na semana que vem vou começar a estudar front end e espero que tenha um jeito melhor de criar as rotas por lá.

Posta o seu pom.xml aí pra eu dar uma olhada.

Esta aqui o link do pom https://github.com/BryanMotta/FormacaoJava/blob/master/pom.xml . Se achar alguma coisa que precise mexer só me avisar.

Tenta rodar com esse pom https://github.com/mhtondin/spring/blob/master/pom.xml . Mudei as versões do Spring conforme eu tinha te falado no outro post e eu vi que tinha umas versões do hibernate em alpha. Também mudei e deixei com a mesma versão do hibernate que eu estou usando.

Cara infelizmente também não funcionou. Mas não se preocupa vou continuar o projeto sem usar esse meio de criação de rota. Mas obrigado por tentar me ajudar. Qualquer coisa só chamar.