简体   繁体   English

没有Spring Security的Spring Java登录

[英]Spring Java Login without Spring Security

I moved to creating my proper login without security, and would like to know how to test if the result of an Hibernate query got a result or not cause now my managedbean login method always returns a SUCCESS result, wether the login is correct or not : 我开始创建没有安全性的正确登录名,并且想知道如何测试Hibernate查询的结果是否有结果,现在,无论登录名正确与否,我的Managedbean登录方法始终返回SUCCESS结果:

Managed Bean : 托管豆:

public String login (){
        try {
            getUsermanagerService().logUser(username, password);

            return SUCCESS;
        } catch (DataAccessException e) {
            e.printStackTrace();
        }
        return ERROR;
    }

DAOImpl : 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;}

ServiceImpl : ServiceImpl:

public UserData logUser(String username, String password) {
    return getUsermanagerDAO().logUser(username, password);

}

Your logic has error. 您的逻辑有错误。

 try {
        getUsermanagerService().logUser(username, password);

        return SUCCESS;
    } catch (DataAccessException e) {
        e.printStackTrace();
    }

When user aren't in DB, query will be empty and you will not have any exception. 当用户不在数据库中时,查询将为空,并且您将没有任何异常。 May be, you must check 可能是,您必须检查

if (getUsermanagerService().logUser(username, password) != null) return SUCCESS; else ERROR;

And if you want use information about authorized user, you must return User class and use it? 如果要使用有关授权用户的信息,必须返回User类并使用它? But this is another story. 但这是另一个故事。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM