java - 使用 Hibernate 进行用户身份验证

标签 java hibernate authentication password-protection

我是 hibernate 新手。 我想用 java 和 hibernate 构建一个简单的身份验证/登录系统。

假设我有一个 User 类

public class User {

private int id;
private String username;
private String passwordHash;
...
}

现在我有一个 DAO 来存储新用户,并获取所有用户(作为列表)。现在我想知道,是否有可能获得没有passwordHash字段的用户列表(出于安全原因)?

如果是配置问题就好了。

另一个想法是将 User 类拆分为

public class User {

private int id;
private String username;
...
}


public class UserWithPassword extends User {

private String passwordHash;
...
}

所以我可以使用 UserWithPassword 将新用户存储到数据库中并使用 User 类用于查询所有用户列表(无密码)。

还有其他建议吗?

最佳答案

您的拆分类将不起作用,因为您必须将类链接到 Hibernate。

您的 DAO 不必返回类本身。您可以编写 HQL 查询,如下所示:

select username
from User

看到了吗?

那么你的 DAO 将有一个类似 public Collection getUserNames() 的方法

关于java - 使用 Hibernate 进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008434/

相关文章:

java - 即使使用正确的凭据,LDAP 错误代码 49 AcceptSecurityContext 错误数据 52e v2580

php - 如何处理 CURL 中服务器重置的连接

algorithm - 安全的用户身份验证

java - Flyway + h2内存数据库+ hibernate +测试导致表不存在

java - tomcat 7 + jersey + hibernate 4.5.1 - NameNotFoundException - 尝试了一切

java - JFrame 重绘();错误

java - 如何避免代码重复在子类中进行输入验证

c# - 如何将此 HQL 转换为 DetachedCriteria?

java - jvm可以配置得体贴一些,与其他进程共享计算资源(CPU和RAM)吗?

java - 将 String 转换为任何所需类的通用代码