2014-03-25 2 views
0

내 Java 데스크톱 응용 프로그램은 JAAS 모듈 Krb5LoginModule을 사용하여 Active Directory에서 Kerberos 티켓을받습니다. 이 코드입니다 :Java는 Kerberos 티켓에서 사용자 정보를 수집합니다.

System.setProperty("java.security.krb5.realm", realmName); 
System.setProperty("java.security.krb5.kdc", realmAddress); 
System.setProperty("java.security.auth.login.config", pathToFile); 
LoginContext ctx = new LoginContext("SignedOnUserLoginContext"); 
ctx.login(); 
Subject signedOnUserSubject = ctx.getSubject(); 

그리고 이것은 모듈입니다 :

이 코드가 작동이 제대로
SignedOnUserLoginContext { 
    com.sun.security.auth.module.Krb5LoginModule 
     required 
     useTicketCache=true 
     doNotPrompt=true; 
}; 

나는 싱글 사인온,하지만 난 사용하는 일부 사용자 정보를 수집하는 방법을 모른다 할 수 이 티켓, 주어진 이름처럼.

누구나 힌트가 있으십니까?

대상에서

답변

1

, 당신은 검색 할 수있는 로그인 한 교장 :이 정보를 principal.getName()

당신이 활성 디렉토리를 조회 할 수 있어야한다 :

Principal principal = signedOnUserSubject.getPrincipals().iterator().next(); 

는 이제 사용자 이름을 얻을 수 있습니다 로그인 한 사용자에 대한 자세한 정보를 얻으십시오. 주어진 이름, 전화 번호, ...