2013-07-15 2 views
3

임베디드 glassfish의 arquillian 테스트에서 ProgrammaticLogin 클래스를 사용하여 로그인을 시뮬레이션하려고합니다. 내 코드는 다음과 같다 :Arquillian 테스트에서 ProgrammaticLogin이 작동하지 않습니다.

System.setProperty("java.security.auth.login.config","path/login.config") 
com.sun.appserv.security.ProgrammaticLogin loginP = new ProgrammaticLogin(); 
    try{ 
     loginP.login("user1","password","fileRealm",true); 
    } 
    catch (Exception e){ 
     System.out.println(e.getMessage()); 
    } 

내가 다음과 같은 예외가 받고 있어요 : 로그인 및 암호가 들어 나는 특성을 추가 한

SEVERE: SEC9050: Programmatic login failed 
com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Failed file login for user1. 
    at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:394) 
    at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:240) 
    at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:153) 
    at com.sun.appserv.security.ProgrammaticLogin$1.run(ProgrammaticLogin.java:174) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.appserv.security.ProgrammaticLogin.login(ProgrammaticLogin.java:168) 
    at com.sun.appserv.security.ProgrammaticLogin.login(ProgrammaticLogin.java:239) 
    at com.sun.appserv.security.ProgrammaticLogin.login(ProgrammaticLogin.java:211) 

파일 users.properties.

+0

login.config의 내용을 게시 할 수 있습니까? – bmurauer

답변

0

glassfish 컨테이너가 자체 프로세스에서 실행되는 경우 System.setProperty()를 사용하여 정의한 속성을 사용할 수 없습니다. 그것은 다른 프로세스에서 실행되는 테스트 내부에서만 사용할 수 있습니다. 어쩌면 @PostConstruct를 사용하여 등록 정보를 설정하는 bean을 배치에 추가해야합니다.

관련 문제