我的Java桌面应用程序使用JAAS模块Krb5LoginModule
从Active Directory获得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;
};
此代码工作正常,我可以单点登录,但我不知道如何使用此票据收集一些用户信息,如给定的名称。
谁有什么提示?
可以从主题中检索已登录的主体:
Principal principal = signedOnUserSubject.getPrincipals().iterator().next();
现在您可以获得主体名称:principal.getName()
有了这些信息,您应该能够查询活动目录以获得有关登录用户的更多信息,例如给定的姓名,电话号码,…