小弟做了个简单的小网站,可碰到了一个很郁闷的问题,就是如果用户直接输入
http://.../login.action(这个action就是登录时验证用户名和密码的)
那就会绕过登陆页面,直接进入后台。照理说如果直接进入这个action的话,密码应该为null,然后直接退回到登陆页面,本机上运行也证实了这点,可是把程序发布到网上之后,直接输入这个地址,就会随机进入别人的账号(貌似是前一个登陆的人的)。请教各位有啥解决的办法

解决方案 »

  1.   

    问题不是很清楚不过大概可以添加一个interceptor来处理,当然你也可以配置一个filter来处理,一个道理,呵呵。
      

  2.   

    public String loginCheck(){

    String password2=userDao.getPasswordByUsername(username);//根据表单中填入的用户名来提取出正确的密码
    if(password==null || password2==null) //判断填入的密码以及提取出的正确密码是否为空
    return ERROR;
    else
    {
    if(password2.equals(password))//验证密码的正确性
    {
    int teamId=userDao.getTeamIdByName(username);
    int userId=userDao.getUserId(username);
    int status=userDao.getUserStatus(username);
    session.put("teamId", teamId);
    session.put("userId", userId);
    session.put("status", status);
    return SUCCESS;
    }
    else
    return ERROR;
    }
    }以上是login.action中的验证密码的方法
      

  3.   

    照理说如果用户直接进入这个action的话,在第一个if的地方就应该return了,因为密码应该是null,这点我在本机上已经验证过了
      

  4.   

    spring默认配置action是单例,你有把它改成request吗?
      

  5.   

    struts2+spring还没用过,有机会要实践下