我做了一个修改密码的功能,密码修改成功了,数据库里的数据也改了,但是当我退出之后用新密码无法登录!用原来的密码才能登录。必须重启tomcat之后才可以用新密码登录。退出的时候已经将session清除了。
这是为什么?是不是还要同步修改放在UserDetails里的密码?如何修改?我用的是Spring Security 3.1.0

解决方案 »

  1.   

    重启tomcat?这不科学你登陆的模块是怎么对比的?上代码
      

  2.   


     <form id="form2" action="<%=basePath%>j_spring_security_check" method="post">
        <div id="log">
          <div class="log_top">
            <font color="red">${SPRING_SECURITY_LAST_EXCEPTION.message}</font>
          </div>
          <div class="log_main">
            <ul>
              <li style="height: 77px"></li>
              <li><input id="j_username" name="j_username"
                value="${SPRING_SECURITY_LAST_USERNAME}" type="text" size="13" maxlength="20"
                class="yhm"></input></li>
              <li style="height: 27px"></li>
              <li><input id="j_password" name="j_password" class="mim" type="password"
                size="13" maxlength="20"></input> <input id="_remember" type='checkbox'
                name='_spring_security_remember_me' title="记住我" /></li>
            </ul>
            <ul id="btn">
              <li style="width: 84px"><input type="submit" name="Submit" class="dl"
                value="提交" onclick="return onSubmit();"></input></li>
              <li style="width: 84px"><input type="reset" name="Submit2" value="重置"
                class="qx"></input></li>
            </ul>
          </div>
          <div class="log_bot"></div>
        </div>
      </form>
    就是用的spring security啊。
      

  3.   

    修改密码之后,把这个用户的session清除就可以了。
      

  4.   

    session的范围是整个web,你关闭浏览器后才能用新密码登陆。