I am currently working on my blog as part of Spring. I am implementing Spring Security for login purposes. Everything works as expected until I send credentials that always return 404 code.
Here is my web.xml cod e
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>avispring</display-name> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-database.xml</param-value> </context-param> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/admin/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>spring</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
Here is my Spring Security Code:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/avispring"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <security:debug/> <security:http auto-config="true"> <security:intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/> <security:intercept-url pattern="/j_spring_security_check" access="permitAll"/> <security:form-login login-page="/login.html" authentication-failure-url="/login?login_error=1" default-target-url="/admin/home.html"/> </security:http> <security:authentication-manager> <security:authentication-provider> <security:jdbc-user-service data-source-ref="dataSource" users-by-username-query="select USERNAME,PASSWORD,ENABLED from USER_AUTHENTICATION where USERNAME=?" authorities-by-username-query="select u1.USERNAME,u2.ROLE from USER_AUTHENTICATION u1,USER_AUTHORIZATION u2 where u1.USER_ID=u2.USER_ID and u1.USERNAME=?"/> </security:authentication-provider> </security:authentication-manager>
part of my login.jsp code
<form action="<c:url value="/login"/>" method="post"> <div class="form-group has-feedback"> <input type="email" class="form-control" placeholder="Email" name="username"> <span class="glyphicon glyphicon-envelope form-control-feedback"></span> </div> <div class="form-group has-feedback"> <input type="password" class="form-control" placeholder="Password" name="password"> <span class="glyphicon glyphicon-lock form-control-feedback"></span> </div> <div class="row"> <div class="col-xs-8"> <div class="checkbox icheck"> <label> <input type="checkbox"> Remember Me </label> </div> </div> <div class="col-xs-4"> <button type="submit" class="btn btn-primary btn-block btn-flat" name="submit">Sign In</button> </div> </div> </form>
, and the console output is
Oct 16, 2015 1:06:03 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound WARNING. There is no mapping for an HTTP request with a URI [/ avispring / login] in a DispatcherServlet named "spring"
Note:
- I am using Spring 4.2.1 and Spring security 4.0.2
- Most forums point to a context path, that is, [appname / login] or [appname / j_spring_security_check] , and I think my approval refers to it
Please, help...
UPDATE:
when I used log4j, the debug output while submitting the form is as follows:
DEBUG: org.springframework.web.servlet.DispatcherServlet - Related request context for the stream: org.apache.catalina .connector.RequestFacade@c8b445 DEBUG: org.springframework.web.servlet.DispatcherServlet - A DispatcherServlet named "spring" processes the POST request for [ / avispring / login] DEBUG: org.springframework.web.servlet.DispatcherServlet - test handler map [org.springframework .web.servlet.mvc.method.annotation.RequestMappingHandlerMapping@ 16fffcf] in DispatcherServlet named 'spring' DEBUG: org.springframework.web.servlet.mvc.method .annotation.RequestMappingHandlerMapping - search for the DEBUG path / entry handler method: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - could not find the handler method for [/ login] DEBUG: org.springframework.web.servlet.DispatcherServlet - handler verification card [or g.springframework.web.servlet.handler.BeanNameUrlHandlerMapping@ g.springframework.web.servlet.handler.BeanNameUrlHandlerMapping@ 138f01b] in a DispatcherServlet named 'spring' DEBUG: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping - no handler mappings were found for [/ login] DEBUG: org.springframework.web.servlet.DispatcherServlet - handler check card [ org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@ 1ff154c] in a DispatcherServlet named 'spring' DEBUG: org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - no handler mappings were found for [/ login] WARN: org.springframework.web.servlet.PageNotFound - no mappings found for HTTP request with URI [/ avispring / login] in DispatcherServlet named 'spring' DEBUG: org.springframework.web.servlet.DispatcherServlet - cleared stream request context: org.apache.catalina.connector.RequestFacade@c8b445 DEBUG: org.springframework.web.servlet .DispatcherServlet - Successfully A perfect DEBUG request: org.springframework.web.context.support.XmlWebApplicationContext - publishing an event in WebApplicationContext for the namespace 'spring -servlet': ServletRequestHandledEvent: url = [/ avispring / login]; Client = [0: 0: 0: 0: 0: 0: 0: 1]; Method = [POST]; servlet = [spring]; session = [BC0FB7E62DC0AFABD8EF72B8BF1CED54]; User = [NULL]; time = [3ms]; state = [OK] DEBUG: org.springframework.web.context.support.XmlWebApplicationContext - publishing the event in Root WebApplicationContext: ServletRequestHandledEvent: url = [/ avispring / login]; Client = [0: 0: 0: 0: 0: 0: 0: 1]; Method = [POST]; servlet = [spring]; session = [BC0FB7E62DC0AFABD8EF72B8BF1CED54]; User = [NULL]; time = [3ms]; state = [OK] DEBUG: org.springframework.web.servlet.DispatcherServlet - associated context of the stream request: org.apache.catalina.core.ApplicationHttpRequest@bb82df DEBUG: org.springframework.web.servlet.DispatcherServlet - DispatcherServlet with the name "spring" processes the POST request for [ /avispring/404.html] DEBUG: org.springframework.web.servlet.DispatcherServlet - test handler map [org.springframework .web.servlet.mvc.method.annotation.RequestMappingHandlerMapping@ 16fffcf] in DispatcherServlet named 'spring' DEBUG: org.springframework.web.servlet.mvc .method.annotation.RequestMappingHandlerMapping - search for the handler method for the /404.html path DEBUG: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - 1 matching mapping found for [/404.html]: [{[/ / 404.html]}] DEBUG: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandle rMapping - returning handler method [public org.springframework.web.servlet.ModelAndView com.avispring.controllers.HelloController.errorPage ()] DEBUG: org.springframework.web.servlet.DispatcherServlet - testing processor adapter [ org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@51 1db5] DEBUG: org.springframework.web.servlet.DispatcherServlet - test processor adapter [org .springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@ 1a86ee] DEBUG: org.springframework.web.servlet.DispatcherServlet - test processor adapter [org.springframework .web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter@ c26a5f] DEBUG: org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod - method call [HelloController.errorPage] with arguments [] DEBUG: org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethage] - method [ModelAndView: link to view neg with the name '/ 404'; model is null] DEBUG: org.springframework.web.servlet.DispatcherServlet - view rendering [org.springframework.web.servlet.view.JstlView: name '/ 404'; URL [/WEB-INF/jsp//404.jsp]] in DispatcherServlet named 'spring' DEBUG: org.springframework.web.servlet.view.JstlView - view rendering with the name '/ 404' using the model {} and static attributes {} DEBUG: org.springframework.web.servlet.view.JstlView - redirect to the resource [/WEB-INF/jsp//404.jsp] in InternalResourceView '/ 404' DEBUG: org.springframework.web.servlet. DispatcherServlet - cleared thread request context: org.apache.catalina.core.ApplicationHttpRequest@bb82df DEBUG: org.springframework.web.servlet.DispatcherServlet - successfully completed DEBUG request: org.springframework.web.context.support.XmlWebApplicationContext - publication of the event in WebApplicationContext for namespace 'spring - servlet ': ServletRequestHandledEvent: url = [/avispring/404.html]; Client = [0: 0: 0: 0: 0: 0: 0: 1]; Method = [POST]; servlet = [spring]; session = [BC0FB7E62DC0AFABD8EF72B8BF1CED54]; User = [NULL]; time = [1 ms]; state = [OK] DEBUG: org.springframework.web.context.support.XmlWebApplicationContext - publishing the event in Root WebApplicationContext: ServletRequestHandledEvent: url = [/avispring/404.html]; Client = [0: 0: 0: 0: 0: 0: 0: 1]; Method = [POST]; servlet = [spring]; session = [BC0FB7E62DC0AFABD8EF72B8BF1CED54]; User = [NULL]; time = [1 ms]; state = [OK]
java spring spring-mvc spring-security jsp
Abhisek lamsal
source share