当前位置: 首页 > 知识库问答 >
问题:

在使用boot和cloud Foundry时,有没有一种方法可以外部化kerberos配置文件?

贾飞章
2023-03-14

我遇到了一个类似的问题:Spring Boot微服务在Pivotal Cloud Foundry平台上部署时未能通过Kerberos身份验证。这个解决方案仍然依赖于将conf/keytab文件放在文件系统中或嵌入到应用程序本身中。由于这是配置,如果我们不必这样做将是理想的。

在使用Cloud Foundry(特别是PCF)时,是否有一种方法可以将这个kerberos配置完全从您的应用程序中外部化?

共有1个答案

闻人哲茂
2023-03-14

我不确定您尝试用Kerbero验证什么应用程序。但我能够使用JAAS为Kafaka进行身份验证。keytab文件路径是通过应用程序属性提供的,它可以在操作系统上的任何位置,这意味着它可以从安装到应用程序的PV(如S3存储)加载。虽然我仍然试图找到一个简单的方法上传键标签文件到存储。请参阅下面的示例代码。

  @Bean
  public KafkaJaasLoginModuleInitializer jaasConfig() throws IOException {
    System.setProperty("java.security.krb5.realm", krb5_realm);
    System.setProperty("java.security.krb5.kdc", krb5_kdc);

    KafkaJaasLoginModuleInitializer jaasConfig = new KafkaJaasLoginModuleInitializer();
    jaasConfig.setControlFlag(KafkaJaasLoginModuleInitializer.ControlFlag.REQUIRED);
    Map<String, String> options = new HashMap<>();
    options.put("doNotPrompt", jass_config_doNotPrompt);
    options.put("refreshKrb5Config", jass_config_refreshKrb5Config);
    options.put("com.sun.security.auth.module.Krb5LoginModule", jass_config_Krb5LoginModule);
    options.put("useKeyTab", jass_config_useKeyTab);
    options.put("storeKey", jass_config_storeKey);
    options.put("keyTab", jass_config_keyTab);
    options.put("principal", jass_config_principal);
    jaasConfig.setOptions(options);
    return jaasConfig;
  }

jass_config_keyTab可以等于“/mnt/keytabstorage/mykeytab.keytab”

 类似资料:
  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask-principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会话。

  • 在我的空手道测试中,我需要将响应ID写到txt文件(或任何其他文件格式,如JSON),我想知道它是否有能力做到这一点,我在文档中没有看到其他的。如果是no,那么是否有一个简单的JavaScript函数来执行此操作?

  • 在我的课堂上,我们使用方法来计算文本文件中的数据。如果我有一个看起来像这样的文件: 有没有无论如何从文件中提取此数据,然后将其发送到一个方法来计算,然后返回该计算以显示在main上?我很困惑Java如何跳过每一行,计算数字而不是人名。我在考虑使用和。但是,如果我应该将这些文本文件行变量读取为双打,我如何能够设置字符串读取文本文件中的行?抱歉问了你这么多问题我纠结了很久快把我逼疯了

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask- principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask- principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会

  • 问题内容: 假设我有以下代码: 这段代码的问题在于,协程内部的循环永远不会完成第一次迭代,而大小会不断增加。 为什么会这样发生,我该怎么解决? 我无法摆脱单独的线程,因为在我的真实代码中,我使用了单独的线程与串行设备进行通信,而且我还没有找到使用的方法。 问题答案: 不是线程安全的,因此您不能直接在多个线程中直接使用它。相反,您可以使用,它是提供线程感知队列的第三方库: 还有(全披露:我写了它),