login.jsp
<div class="error ${param.error == true ? '' : 'hide'}">
  登陆失败<br>
  ${sessionScope['SPRING_SECURITY_LAST_EXCEPTION'].message}
</div>
<form action="j_spring_security_check" >
  <fieldset>
    <legend>登陆</legend>
    用户: <input type="text" name="j_username" style="width:150px;" value="${sessionScope['SPRING_SECURITY_LAST_USERNAME']}"/><br />
    密码: <input type="password" name="j_password" style="width:150px;" /><br />
    <input type="checkbox" name="_spring_security_remember_me" />两周之内不必登陆<br />
    <input type="submit" value="登陆"/>
    <input type="reset" value="重置"/>
  </fieldset>
</form>security.xml
<beans:beans xmlns="http://www.springframework.org/schema/security"
  xmlns:beans="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/security
           http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
  

    <http auto-config='true'>
        <intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
        <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
        <intercept-url pattern="/**" access="ROLE_USER" />
        <form-login login-page="/login.jsp"
                authentication-failure-url="/login.jsp?error=true"
                default-target-url="/" />
        
    </http>



    <authentication-provider>
    
     <password-encoder hash="md5">  
                <salt-source user-property="username"/>  
        </password-encoder>
              
        <jdbc-user-service data-source-ref="dataSource"
        users-by-username-query="select username,password,status as enabled
                                         from user
                                        where username=?"
        authorities-by-username-query="select u.username,r.name as authority
                                             from user u
                                             join user_role ur
                                               on u.user_id=ur.user_id
                                             join role r
                                               on r.role_id=ur.role_id
                                            where u.username=?"/>
   </authentication-provider>  
   
   
    <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <beans:property name="driverClassName" value="${jdbc.driverClassName}"/>
        <beans:property name="url" value="${jdbc.url}"/>
        <beans:property name="username" value="${jdbc.username}"/>
        <beans:property name="password" value="${jdbc.password}"/>
    </beans:bean>
</beans:beans>三张表
mysql> select * from user;
+---------+-------------+----------+--------+----------+
| user_id | description | password | status | username |
+---------+-------------+----------+--------+----------+
|       1 |             | admin    |      1 | admin    |
|       2 |             | user     |      1 | user     |
+---------+-------------+----------+--------+----------+
mysql> select * from role;
+---------+----------------+------------+
| role_id | authentication | name       |
+---------+----------------+------------+
|       1 |                | ROLE_ADMIN |
|       2 |                | ROLE_USER  |
+---------+----------------+------------+
mysql> select * from user_role;
+---------+---------+
| user_id | role_id |
+---------+---------+
|       1 |       1 |
|       1 |       2 |
|       2 |       2 |
+---------+---------+
配置了好久,输入的用户名都是正确的,admin/admin,但就是一直显示Bad credentials,不知道什么原因?麻烦大侠们,帮我看看,小弟在此谢过了!!!