사용자 계정 생성 및 인증 처리를 위해 Seam의 IdentityManager
및 JpaIdentityStore
구성 요소를 활용하는 JBoss Seam 앱이 있습니다. 내 components.xml
파일이 올바르게 설정되었으며 문제없이 계정을 만들 때 IdentityManager
을 사용할 수 있습니다.Seam - IdentityManager.isUserEnabled() 문제
계정 활성화/비활성화와 같은 기본 계정 유지 관리를 수행 할 수있는 페이지를 만들었습니다. 그러나 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)
를 호출 할 때, 나는 실제로 데이터베이스를 참조 할 것을 알 수
반영 사용 열에서 해당. 또한 enableUser(String username)
으로 전화하면 즉시 계정을 사용할 수 있음을 알 수 있습니다. 그러나 다른 페이지로 이동 한 다음 다시 돌아와 isUserEnabled()
을 호출하면 여전히 false가 표시됩니다.
isUserEnabled (username)를 호출하고 Hibernate SQL 로깅을 켜는 줄에 중단 점이 표시되면 'select ... from tbl_user_acct where username =?'을 볼 수 있습니까? 메소드를 실행할 때 로그에? –