JBoss seam을 사용하여 개발 된 웹 응용 프로그램의 프론트 엔드에서 작업하고 있습니다. 사용자 로그인시 NullPointerException
이 발생하지만 어떻게되는지는 알 수 없습니다. 다음은 로그를 기반으로 한 요약입니다. Identity.getCredentials throw NullPointerException
사용자가 로그인을 시도
의 LoginBean에서 인증 할 방법은 아직도 자격 증명이 코드에서 신원 객체의 속성에 액세스 할 수 있습니다public class LoginBean{
//both from org.jboss.seam.security package
@In
private Credentials credentials
@In
private Identity identity
public boolean authenticate(){
...
//false
logger.info(identity.getCredential null? == " + identity.getCredential==null);
//this returns true
result = webAuthentication.login(credential.getUsername(), credential.getPassword());
return result;
}
}
을 실행했다. 인증을 실행 한 후, 로그는 다른 클래스의 메소드가 실행되었음을 보여줍니다.
public class LoginControllerBean{
@In
private Identity identity; //org.jboss.seam.security
@Observer("org.jboss.seam.security.loginSuccessful")
@Begin(join = true)
public void updateSessionUserStats(){
//i can still see this in the log
logger.info("Login successful. updating sessionUserInfo....");
//throws NullPointerException
logger.info("check identity.getCredential if null == " + identity.getCredential());
sessionUser = new SessionUser();
//if I remove the log above this call will throw NullPointerException
sessionUser.setUsername(identity.getCredentials().getUsername());
}
}
은 내가
@Observer(...loginSuccessful)
주석과 방법은 바로 인증하고 이후에 실행 되었기 때문에 로그인이 성공한다고 가정.
두 번째 클래스의 ID 개체는 모두 @In annotation.
에 의해 삽입됩니다. identity.getCredentials() throws nullPointerException
은 두 번째 코드에서 첫 번째 코드가 정상인 이유는 무엇입니까? 무엇이 원인이 될 수 있습니까? dentity.getCredentials() throwing nullPointerException?
죄송합니다. 문제에 대해 자세히 설명 할 수 없으면 죄송합니다. 프런트 엔드 코드에만 액세스 할 수 있습니다. 감사합니다. 당신이 null 이외의 사용 받아보실 수 있도록하려면
정체성 당신이 NullPointerException이있어 그래서 널 – newuser