我开始在没有安全性的情况下创建正确的登录,并且想知道如何测试 Hibernate 查询的结果是否得到结果,因为现在我的托管bean登录方法总是返回 SUCCESS 结果,无论登录是否正确或不:
托管 Bean:
public String login (){
try {
getUsermanagerService().logUser(username, password);
return SUCCESS;
} catch (DataAccessException e) {
e.printStackTrace();
}
return ERROR;
}
DAOImpl:
public UserData logUser(String username, String password) {
List<UserData> userList = new ArrayList<UserData>();
Query query = openSession().createQuery("from UserData u where u.username = :Username and u.password = :Password");
query.setParameter("Username", username);
query.setParameter("Password", password);
userList = query.list();
if (userList.size() > 0)
return userList.get(0);
else
return null;}
服务实现:
public UserData logUser(String username, String password) {
return getUsermanagerDAO().logUser(username, password);
}
最佳答案
你的逻辑有问题。
try {
getUsermanagerService().logUser(username, password);
return SUCCESS;
} catch (DataAccessException e) {
e.printStackTrace();
}
当用户不在数据库中时,查询将为空,并且不会出现任何异常。也许是,你必须检查
if (getUsermanagerService().logUser(username, password) != null) return SUCCESS; else ERROR;
如果您想使用有关的信息 授权用户,必须返回User类并使用它?但这是另一个故事了。
关于java - 没有 Spring Security 的 Spring Java 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32490018/