【问题标题】:Authentication for same username and different password using spring使用spring对相同的用户名和不同的密码进行身份验证
【发布时间】:2013-07-26 10:02:11
【问题描述】:
我有一个网络应用程序。只有具有不同客户端创建的用户名和密码的用户才能进入应用程序。意味着具有相同用户名的用户可以使用不同的密码进入应用程序。
现在我的代码返回所有具有相同用户名的用户,但只接受最高位置的用户。为剩余用户提供错误。
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;
}
请帮帮我。
【问题讨论】:
标签:
jquery
spring
jsp
spring-security
【解决方案1】:
如果您有相同的用户名但使用不同的密码,您可以修改 findByUserName 以返回整个用户列表
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
}
}