gpt4 book ai didi

java - Seam - IdentityManager.isUserEnabled() 的问题

转载 作者:行者123 更新时间:2023-12-01 05:40:41 25 4
gpt4 key购买 nike

我有一个 JBoss Seam 应用程序,它利用 Seam 的 IdentityManagerJpaIdentityStore 组件来处理用户帐户创建和身份验证。我的 components.xml 文件设置正确,并且我可以使用 IdentityManager 毫无问题地创建帐户。

我创建了一个页面来执行基本的帐户维护,例如启用/禁用帐户。但是,每当我在 IdentityManager 上调用 isUserEnabled(String username) 方法时,它总是返回 false。 JpaIdentityStore 中的相应方法也返回 false。即使我可以看到数据库中已启用帐户,这两种情况都会发生。我的用户帐户类别注释如下:

@Name("user")
@Entity(name = "UserAccount")
@Table(name = "tbl_user_acct", uniqueConstraints = { @UniqueConstraint(columnNames = "username") })
public class UserAccountBean extends BaseDomainEntity implements
VersionedDomainEntity {

private static final long serialVersionUID = -3573332411594504888L;

@UserEnabled
private boolean enabled;

...

}

我对 IdentityManager 类的任何其他方面都没有任何问题(更改密码、创建/删除帐户等)。我遇到的唯一错误是当我尝试确定用户是否启用。我没有收到任何异常或错误消息,只是返回了错误的结果。

还有人遇到过这种情况吗?知道如何最好地开始解决此问题吗?

编辑:一些附加信息...

我注意到,当我调用 disableUser(String username) 时,我确实看到数据库在 ENABLED 列中反射(reflect)了这一点。此外,当我调用 enableUser(String username) 时,我立即看到该帐户已启用。但是,如果我导航到另一个页面,然后返回并调用 isUserEnabled(),它仍然显示 false。

最佳答案

结果是与延迟获取相关的问题。我有一个 UserProfile 对象,上面有一个 userAccount 属性。该关系是惰性获取的。一旦我将其更改为急切获取,我就收到了来自 isUserEnabled() 的适当响应。

关于java - Seam - IdentityManager.isUserEnabled() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7259873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com