ユーザーアカウントの作成と認証を処理するために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が表示されます。