我有一个 JBoss Seam 应用程序,它利用 SeamIdentityManager
和JpaIdentityStore
组件来处理用户帐户创建和身份验证。我的components.xml
文件设置正确,我可以IdentityManager
毫无问题地用于创建帐户。
我创建了一个页面来允许我执行基本的帐户维护,例如启用/禁用帐户。但是,每当我调用isUserEnabled(String username)
on 方法时IdentityManager
,它总是返回 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 列中反映了这一点。此外,当我打电话时enableUser(String username)
,我立即看到该帐户已启用。但是,如果我导航到另一个页面然后返回并调用isUserEnabled()
,它仍然显示为 false。