Java 在名为';mvc调度程序&x27;

Java 在名为';mvc调度程序&x27;,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,我尝试使用SpringMVC运行SpringSecurity登录表单应用程序 这是我的网址: http://localhost:8087/SpringSecurityLoginForm/ 在URL末尾添加登录名时: http://localhost:8087/SpringSecurityLoginForm/login 当我在url末尾添加(手动)登录时,会出现登录页面,并显示用户名和密码字段。但它不是自动来的。我已经检查了控制器映射,并尝试了针对同一主题的一些建议,但它不起作用。请让我知道代

我尝试使用SpringMVC运行SpringSecurity登录表单应用程序

这是我的网址:

http://localhost:8087/SpringSecurityLoginForm/
在URL末尾添加登录名时:

http://localhost:8087/SpringSecurityLoginForm/login
当我在url末尾添加(手动)登录时,会出现登录页面,并显示用户名和密码字段。但它不是自动来的。我已经检查了控制器映射,并尝试了针对同一主题的一些建议,但它不起作用。请让我知道代码中的错误以修复它

我的控制台:

Apr 21, 2014 12:12:53 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Riya/software_downloads/eclipse/jre/bin/server;C:/Riya/software_downloads/eclipse/jre/bin;C:/Riya/software_downloads/eclipse/jre/lib/amd64;C:\Program Files\Java\jdk1.7.0_09\bin;C:Program Files\apache-maven-3.2.1\bin;C:\app\Riya\product\12.1.0\dbhome_1\bin;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Riya\software_downloads\eclipse;;.
Apr 21, 2014 12:12:53 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SpringSecurityLoginForm' did not find a matching property.
Apr 21, 2014 12:12:53 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8086"]
Apr 21, 2014 12:12:53 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Apr 21, 2014 12:12:53 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 445 ms
Apr 21, 2014 12:12:53 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 21, 2014 12:12:53 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.34
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
Apr 21, 2014 12:12:55 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
Apr 21, 2014 12:12:55 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Apr 21, 2014 12:12:55 PM org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
Apr 21, 2014 12:12:55 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing Root WebApplicationContext: startup date [Mon Apr 21 12:12:55 EDT 2014]; root of context hierarchy
Apr 21, 2014 12:12:55 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]
Apr 21, 2014 12:12:55 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-database.xml]
Apr 21, 2014 12:12:55 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-security.xml]
Apr 21, 2014 12:12:55 PM org.springframework.security.core.SpringSecurityCoreVersion performVersionChecks
INFO: You are running with Spring Security Core 3.2.1.RELEASE
Apr 21, 2014 12:12:55 PM org.springframework.security.core.SpringSecurityCoreVersion performVersionChecks
WARNING: **** You are advised to use Spring 3.2.8.RELEASE or later with this version. You are running: 3.2.4.RELEASE
Apr 21, 2014 12:12:55 PM org.springframework.security.config.SecurityNamespaceHandler <init>
INFO: Spring Security 'config' module version is 3.2.1.RELEASE
Apr 21, 2014 12:12:55 PM org.springframework.security.config.http.HttpSecurityBeanDefinitionParser checkFilterChainOrder
INFO: Checking sorted filter chain: [Root bean: class [org.springframework.security.web.context.SecurityContextPersistenceFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 200, Root bean: class [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 400, Root bean: class [org.springframework.security.web.authentication.logout.LogoutFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 700, <org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0>, order = 1100, Root bean: class [org.springframework.security.web.authentication.www.BasicAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1500, Root bean: class [org.springframework.security.web.savedrequest.RequestCacheAwareFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1600, Root bean: class [org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 1700, Root bean: class [org.springframework.security.web.authentication.AnonymousAuthenticationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2000, Root bean: class [org.springframework.security.web.session.SessionManagementFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2100, Root bean: class [org.springframework.security.web.access.ExceptionTranslationFilter]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null, order = 2200, <org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0>, order = 2300]
Apr 21, 2014 12:12:56 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@2e352f85: defining beans [loginController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.web.servlet.view.InternalResourceViewResolver#0,messageSource,dataSource,org.springframework.security.filterChains,org.springframework.security.filterChainProxy,org.springframework.security.web.PortMapperImpl#0,org.springframework.security.web.PortResolverImpl#0,org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0,org.springframework.security.authentication.ProviderManager#0,org.springframework.security.web.context.HttpSessionSecurityContextRepository#0,org.springframework.security.web.authentication.session.CompositeSessionAuthenticationStrategy#0,org.springframework.security.web.savedrequest.HttpSessionRequestCache#0,org.springframework.security.access.vote.AffirmativeBased#0,org.springframework.security.web.access.intercept.FilterSecurityInterceptor#0,org.springframework.security.web.access.DefaultWebInvocationPrivilegeEvaluator#0,org.springframework.security.authentication.AnonymousAuthenticationProvider#0,org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint#0,org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0,org.springframework.security.userDetailsServiceFactory,org.springframework.security.web.DefaultSecurityFilterChain#0,org.springframework.security.provisioning.JdbcUserDetailsManager#0,org.springframework.security.authentication.dao.DaoAuthenticationProvider#0,org.springframework.security.authentication.DefaultAuthenticationEventPublisher#0,org.springframework.security.authenticationManager,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
Apr 21, 2014 12:12:56 PM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
INFO: Loaded JDBC driver: oracle.jdbc.OracleDriver
Apr 21, 2014 12:12:56 PM org.springframework.security.provisioning.JdbcUserDetailsManager initDao
INFO: No authentication manager set. Reauthentication of users when changing passwords will not be performed.
Apr 21, 2014 12:12:56 PM org.springframework.security.web.DefaultSecurityFilterChain <init>
INFO: Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.SecurityContextPersistenceFilter@164a38ae, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@62cf32f0, org.springframework.security.web.authentication.logout.LogoutFilter@11195d3e, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@18389a37, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@2c149d4d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7d6340d6, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@7f35e1e9, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2a82c93e, org.springframework.security.web.session.SessionManagementFilter@706a1b3f, org.springframework.security.web.access.ExceptionTranslationFilter@4622fec1, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@238354e0]
Apr 21, 2014 12:12:56 PM org.springframework.security.config.http.DefaultFilterChainValidator checkLoginPageIsntProtected
INFO: Checking whether login URL '/login' is accessible with your configuration
Apr 21, 2014 12:12:56 PM org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 1050 ms
Apr 21, 2014 12:12:56 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'mvc-dispatcher'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'mvc-dispatcher': initialization started
Apr 21, 2014 12:12:56 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'mvc-dispatcher-servlet': startup date [Mon Apr 21 12:12:56 EDT 2014]; parent: Root WebApplicationContext
Apr 21, 2014 12:12:56 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]
Apr 21, 2014 12:12:56 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6398523f: defining beans [loginController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.web.servlet.view.InternalResourceViewResolver#0,messageSource,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@2e352f85
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/login] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/login.*] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/login/] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/logout] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/logout.*] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/logout/] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/welcome] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/welcome.*] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/welcome/] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/loginfailed] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/loginfailed.*] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/loginfailed/] onto handler 'loginController'
Apr 21, 2014 12:12:56 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'mvc-dispatcher': initialization completed in 322 ms
Apr 21, 2014 12:12:56 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8086"]
Apr 21, 2014 12:12:56 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Apr 21, 2014 12:12:56 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3104 ms
Apr 21, 2014 12:13:16 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/SpringSecurityLoginForm/] in DispatcherServlet with name 'mvc-dispatcher'
mymessages.properties

AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password
明白了

您需要具备以下功能:

<intercept-url pattern="/**" access="ROLE_USER" />


而不仅仅是
/welcome*
。否则,Spring安全性不会将根上下文
/
确定为安全资源。

在我看来
/SpringSecurityLoginForm
不是应用程序的contextPath。但是它绑定到
/
。试试这个
http://localhost:8087/login
对于登录页面,我尝试了url,但它不起作用。如果我在url中有/login,则它起作用@Artem:我将在问题中添加我的控制器类。感谢您的回复。我现在将尝试此操作,并会回复您。我收到404错误。更改后找不到网页,如果我这次尝试添加/登录,它将不起作用,并在更改后给出404。还有一件事,我的普遍怀疑可能是它非常基本,因为我是这项技术的新手。我问这个问题。在SpringHibernate的许多示例中,jsp中有method=“POST”,但在控制器请求映射方法级别,method=RequestMethod.GET。即使我们在JSP中有POST,我们也只在请求映射中有GET。那么,它将映射这两个方面?如果你知道这个问题的答案,请澄清我的疑问。有人能建议我解决上述问题吗?
POST/GET
是另一个问题。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"

       xsi:schemaLocation="
                       http://www.springframework.org/schema/beans
                       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                       http://www.springframework.org/schema/context
                       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

                       <context:component-scan base-package="com.spring.common.controller"/>



                        <bean
                            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                            <property name="prefix">
                                <value>/WEB-INF/pages/</value>
                            </property>
                            <property name="suffix">
                            <value>.jsp</value>
                            </property>
                        </bean>


                       <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
                       <property name="basenames">
                       <list>
                         <value>mymessages</value>
                       </list>
                       </property>
                       </bean>


                       </beans>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringSecurityLoginForm</display-name>
  <servlet>
  <servlet-name>mvc-dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
   <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>
        /WEB-INF/mvc-dispatcher-servlet.xml,
        /WEB-INF/spring-database.xml,
        /WEB-INF/spring-security.xml
     </param-value>
   </context-param>
   <!--  Spring Security -->
   <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>/*</url-pattern>
   </filter-mapping>
    <jsp-config>
     <taglib>
         <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
         <taglib-location>/WEB-INF/tags/c.tld</taglib-location>
      </taglib>
    </jsp-config>
</web-app>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  
<html>
<head>
 <title>Login Page</title>
 <style>
 .errorblock {
 color: #ffEEEE;
 background-color: #ffEEEE;
 border: 3px solid #ff0000;
 padding: 8px;
 margin: 16px;
 }
 </style>
</head>
<body onload='document.f.j_username.focus();'>
  <h3>Login with Username and Password (Authentication with Database)</h3>

  <c:if test="${not empty error}">
   <div class="errorblock">
      Your login attempt was not successful, try again.<br />Caused :
      ${sessionScope["SPRING_SECURITY_LAST_EXCEPTION"].message}
   </div>
   </c:if>

   <form name='f' action="<c:url value='j_spring_security_check' />" method='GET'>
   <table> 
    <tr>
      <td>User:</td>
      <td><input type='text' name='j_username' value=''>
      </td>
    </tr>
    <tr>
     <td>Password:</td>
     <td><input type='password' name='j_password' />
     </td>
     </tr>
     <tr>
     <td colspan='2'><input name="submit" type="submit" value="submit" />
     </td>
     </tr>
     <tr>
      <td colspan='2'><input name="reset" type="reset" />
     </td>
     </tr>
   </table>

   </form>
   </body>

</html>
package com.spring.common.controller;

import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class LoginController {

    @RequestMapping(value="/welcome",method=RequestMethod.GET)
    public String printWelcome(ModelMap model)
    {
        User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        String name=user.getUsername();

        model.addAttribute("username",name);
        model.addAttribute("message","Spring Security login + database example");
        return "hello";
    }

    @RequestMapping(value="/login", method=RequestMethod.GET)
    public String login(ModelMap model)
    {
        return "login";
    }

    @RequestMapping(value="/loginfailed", method=RequestMethod.GET)
    public String loginerror(ModelMap model)
    {
        model.addAttribute("error","true");
        return "login";
    }

    @RequestMapping(value="/logout", method=RequestMethod.GET)
    public String logout(ModelMap model)
    {
        return "login";
    }

}
AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password
<intercept-url pattern="/**" access="ROLE_USER" />