2013-07-26 31 views
0

我有一個Web應用程序。只有用戶可以使用由不同客戶端創建的用戶名和密碼進入應用程序。表示具有相同用戶名的用戶可以使用不同的密碼進入應用程序。 現在我的代碼返回所有用戶使用相同的用戶名,但只接受頂部位置的用戶。給剩餘的用戶提供錯誤。使用彈簧驗證相同的用戶名和不同的密碼

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

如果你有相同的用戶名,但不同的密碼,可以修改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 
    } 
} 
的整個列表