java - 没有 Spring Security 的 Spring Java 登录

标签 java spring hibernate

我开始在没有安全性的情况下创建正确的登录,并且想知道如何测试 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/

相关文章:

java - @JsonIgnore vs @Transient - 区别?

java - 在 Firebase 数据库中存储变量的必要性

spring - 将 Spring 组件导出为 OSGi 服务

java - Spring OAuth2 资源和授权服务器

java - Spring Boot 应用程序中的动态数据库重新配置

eclipse - 在STS eclipse中将hibernate-orm导入为gradle项目

java - 实体列表上的 Hibernate 过滤器,但只检索其中一个属性

java - Android `<item android:left="10dp">` 的等效 java 代码是什么?

java - 杰斯克(Resque): Get all open delayed jobs in redis db

java - 使用 Java 代码使用 JMeter JMX 脚本运行测试片段时出现问题