2014-05-09 2 views
4

찾을 수 없습니다 나는 글래스 피시 4 Application Development Guide 페이지에 설명 된 절차를 따랐다. 4-6, "사용자 정의 영역 만들기".사용자 정의 영역 : 로그인 모듈은 내가 글래스 피시 4.</p> <p>에 대한 사용자 지정 영역 및 로그인 모듈을 만들기 위해 노력하고

나는 또한 this article의 단계를 따른다.

com.sun.appserv.security.AppservPasswordLoginModule을 확장하는 loginModule을 만들었습니다.

com.sun.appserv.security.AppservRealm을 확장하는 영역 (SaltRealm)을 만들었습니다.

나는 jar로 컴파일하고 glassfish4 \ glassfish \ domains \ domain1 \ lib에 jar를 넣었다.

나는 도메인 \ \ glassfish4 \ 글래스 피쉬이 추가 \ domain1을 \ 설정 \ login.conf :

saltRealm { 
    com.example.LoginModule required; 
}; 

나는 \에 추가 glassfish4 \ 글래스 피쉬 \ 도메인 \ domain1을 \ 설정 \ domain.xml의 :

<auth-realm classname="com.example.SaltRealm" name="saltRealm"> 
     <property name="jaas-context" value="saltRealm"></property> 
    </auth-realm> 

그리고 web.xml에 saltRealm을 사용하기위한 섹션을 추가했습니다.

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>saltRealm</realm-name> 
    <form-login-config> 
     <form-login-page>/login.xhtml</form-login-page> 
     <form-error-page>/error.xhtml</form-error-page> 
    </form-login-config> 
</login-config> 

saltRealm 클래스가 발견되었습니다 (생성자가 실행됨을 알 수 있습니다).

그러나 로그인 모듈을 찾을 수없는 것 같습니다.

WEB9102 : 웹 로그인 실패 : com.sun.enterprise.security.auth.login.common.LoginException : 로그인 실패 : 잘못된 널 (null) 입력 :이 경고를 얻을 잘 모르겠어요

이름을 내가 여기에 실종 됐어.

답변

1

: 대안으로

는 글래스 피쉬 콘솔에서 영역의 자세한 것을 로그인을 할 수 있습니다.

IASRealm에서 getJAASContext()를 재정의해야합니다. 이것은 추상적 인 메소드는 아니지만 리턴 값을 사용하여 영역을 로그인 모듈에 맵핑 할 때이를 대체해야합니다. 따라서 getJAASContext()는 login.conf에서 사용하고있는 영역의 이름을 반환해야합니다. 귀하의 경우에는

될 것이다 :

@Override 
public String getJAASContext(){ 
    return "saltRealm"; 
} 
0

게시 한 발췌 문장이 올바른 것처럼 보입니다. 문제를 디버깅하려면 Glassfish를 디버그 모드로 시작하고 로그인 모듈에 중단 점을 설정할 수 있습니다. 몇 가지 조사가 누락 된 조각 하나를 뽑아 때까지 매우 유사 지침에 따라 비슷한 문제가 있었다

Configurations - server-config - Logger Settings - Log Levels - javax.enterprise.system.core.security 
관련 문제