У меня есть приведенный ниже фрагмент кода для входа в Kerberos с использованием keytab.
Configuration conf = HBaseConfiguration.create();
conf.addResource("hbase-site.xml");
Connection connection = ConnectionFactory.createConnection(conf);
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytabAndReturnUGI(user, keytabpath);
У нас также установлен срок обновления 7 дней в нашей среде в соответствии со стандартами безопасности. Следовательно, приведенный выше код работает в течение 7 дней и в последний день, хотя код приложения пытается обновить токен, он не может выполнить ограничения «продлить до». Я должен вручную сделать kinit, чтобы все работало в течение следующих 7 дней.
Есть ли альтернатива для обработки этого на уровне кода приложения? Я изучаю варианты на уровне среды для обработки, но есть ограничения, хотя. Я попробовал рекомендации по этой ссылке, но это не сработало: Стратегия обновления соединения HBase Kerberos
Обновлено с подробностями klist:
[Fri 04/10 05:30 PM] root@lxapp6479:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: uname@domain
Valid starting Expires Service principal
10/04/2019 11:10:19 10/05/2019 11:10:19
krbtgt/DOMAIN@ABC.COM
renew until 10/09/2019 12:32:35
Учитывая, что новый билет был продлен @ 10/04, продление до того времени должно было быть перенесено обратно на 10/11, но это не происходит с приведенным ниже вызовом API:
UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();