Насколько я знаю, невозможно использовать что-либо, кроме абсолютного пути к таблице ключей в файле jaas.conf.
В Krb5LoginModule.java
каждый видит (например, Krb5LoginModule.java на github.com )
if (useKeyTab) {
ktab = (keyTabName == null)
? KeyTab.getInstance()
: KeyTab.getInstance(new File(keyTabName));
И код .getInstance()
будет использовать.getPath()
для экземпляра File
объекта (см. KeyTab.java ).
Следовательно, в базовом подходе нет ничего, что будет искать путь к классам.Также, смотрите этот вопрос здесь о настройке keytab * .
Тем не менее, и не показанный в файле конфигурации OP, можно изменить класс с обычного "com.sun"..security.authmodule.Krb5LoginModule "в пользовательский модуль.В этом пользовательском модуле можно выполнять такие действия, как установка записей в параметре Map<String,?>
, который используется в методе initialize
Krb5LoginModule
.
. Мы реализовали такой подход, чтобыразличные настройки, которые будут определены в нашем клиентском приложении, вместо того, чтобы пытаться заставить наших пользователей редактировать файл jaas.conf на клиенте.Итак, мы используем пользовательский модуль, который использует подход Composition, инкапсулирующий Krb5LoginModule, but sets all of the desired options into the
Map`.
Это что-то вроде:
Map<String, String> mOpts = new HashMap<>(); // options
mOpts.put("doNotPrompt", Boolean.TRUE.toString());
mOpts.put("useTicketCache", Boolean.FALSE.toString());
mOpts.put("useKeyTab", Boolean.TRUE.toString());
mOpts.put("keyTab", options.getKeytabPath().toString());
mOpts.put("principal", PrincipalUtils.getDefaultPrincipal().getName());
krb5LM.initialize(_subject, options.getCallbackHandler(), mSS, mOpts);
//
// attempt to authenticate the user
//
krb5LM.login();
Можно найти путь к классу для требуемого имени файла и затем передать найденный файл в Map
.В приведенном выше квази-примере объект options
извлек таблицу ключей из настроек пользователя и проверил ее.Но вместо того, чтобы иметь определенный предварительно просматриваемый файл, можно реализовать поиск по пути к классам.