У меня есть приложение JBoss Seam, которое использует компоненты IdentityManager
и JpaIdentityStore
Seam для обработки создания учетной записи пользователя и аутентификации. Мой 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.