Создайте файлы конфигурации JAAS для каждой целевой платформы или создайте записей для каждой платформы в одной конфигурации JAAS.Затем получите доступ к информации через API Java SE, не используя пакеты com.sun. * Напрямую.Это можно выполнить с помощью Службы аутентификации и авторизации Java (JAAS) (javax.security.auth. * И javax.security.auth.login. *).Создайте файл конфигурации JAAS со следующей записью:
sampleApp {
com.sun.security.auth.module.NTLoginModule required debug=false;
};
Сохраните эту запись как sampleapp_jaas.config
.Затем установите системное свойство, чтобы Java искала файл конфигурации.
-Djava.security.auth.login.config==sampleapp_jaas.config
Обратите внимание, что двойное равенство имеет особое значение.Подробности о порядке загрузки см. В com.sun.security.auth.login.ConfigFile .
Затем создайте LoginContext, который будет искать запись в конфигурации JAAS.Звоните логин, чтобы заполнить тему.Оттуда вы можете получить доступ к информации, используя предметный API.Например, в следующем примере просто перечислите группы, назначенные текущему пользователю.
LoginContext l = new LoginContext("sampleApp");
l.login();
try {
Subject s = l.getSubject();
for (Principal p : s.getPrincipals()) {
System.out.println(p);
}
} finally {
l.logout();
}
Используя эту настройку, Java будет использовать класс com.sun.security.auth.module.NTSystem для получения информации, но ни одной.вашего кода будет привязан к нестандартным API.