ユーザーアカウントの作成と認証を処理するためにSeamIdentityManagerとコンポーネントを活用するJBossSeamアプリがあります。JpaIdentityStore私のcomponents.xmlファイルは正しく設定さIdentityManagerれており、問題なくアカウントを作成するために使用できます。
アカウントの有効化/無効化など、基本的なアカウントのメンテナンスを実行できるページを作成しました。isUserEnabled(String username)ただし、でメソッドを呼び出すと、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が表示されます。