使用spring对相同用户名和不同密码进行身份验证

时间:2013-07-26 08:08:46

标签: jquery spring jsp spring-security

我有一个网络应用程序。只有用户可以使用由不同客户端创建的用户名和密码进入应用程序。具有相同用户名的用户可以使用不同的密码进入应用程序。 现在我的代码返回具有相同用户名的所有用户,但只接受顶部位置的用户。为剩下的用户提供错误。

public User findbyUserName(String username)
        { 
        Criteria crit = getSessionFactory().getCurrentSession().createCriteria(User.class);
        crit.add( Restrictions.eq("username", username));
        List<User> list=crit.list();
        if(list!=null && list.size()>0)
             return (User)list.get(0);
        else
             return null;
            }

请帮助我。

1 个答案:

答案 0 :(得分:1)

如果您使用相同的用户名但使用不同的密码,则可以修改find​​ByUserName以返回整个用户列表

public List<User> findbyUserName(String username)
{
    Criteria crit = getSessionFactory().getCurrentSession().createCriteria(User.class);
    crit.add(Restrictions.eq("username",username));
    return crit.list();
}

或者您可以通过用户名和密码进行搜索

public User findbyUserNameAndPassword(String username,String password)
{
    Criteria crit =getSessionFactory().getCurrentSession().createCriteria(User.class);
    crit.add(Restrictions.eq("username",username);
    crit.add(Restrictions.eq("password",password);
    try{
    return (User)crit.uniqueResult();
    }
    catch(Exception ex){
       //you have same user with same password twice
    }
}