如何续订5天后过期的Kerberos票证

2024-09-28 18:58:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在jenkins运行crons作业,每次运行时我都运行kinit命令来生成Kerberos票证,这是一个时间表,因为之前我在那里运行python脚本,5天后也无法运行。我在规定的地方检查我的票证政策

ticket_lifetime = 10h
renew_lifetime = 5d

我配置Jenkins作业,该作业每1小时连续运行一次。我想确保我的Kerberos票证在到期时可以续签。谁能建议我该怎么办。下面是我的python脚本代码截取器

  def generate_kerberos_token(self):
    print("Enter in generate_kerberos_token:")
    kinit = '/usr/bin/kinit'
    kinit_args = [kinit, '%s@%s' % (self.username, self.realm)]
    kinit = Popen(kinit_args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
    kinit.stdin.write('{}\n'.format(self.password).encode("utf-8"))
    kinit.stdin.flush()
    kinit.wait()

 def call_api(self, cr_number, api="", method="get", params=None, data=None):
    self.generate_kerberos_token()
    __, krb_context = kerberos.authGSSClientInit("HTTP@%s" % self.server)
    kerberos.authGSSClientStep(krb_context, "")
    self._krb_context = krb_context
    self.auth_header = ("Negotiate " + kerberos.authGSSClientResponse(krb_context))
    self.headers = {"Authorization": self.auth_header, "ApplicationSource": self.application_source, "Content-Type" : "application/json"}
    
    

但作业在kerberos.authGSSClientStep(krb_context,“”)上运行7天后出错,错误如下

kerberos.GSSError:((“未指定的GSS故障。次要代码可能提供更多信息”,851968),(“票证已过期”,-1765328352))

有人可以建议我如何在脚本中自动续订票证,这样作业就不会因为票证过期而失败。 请帮帮忙好吗


Tags: self脚本tokenstdin作业contextkerberos建议