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.