spring - 使用 boot 和 cloud foundry 时是否有办法外部化 kerberos 配置文件?

标签 spring spring-boot kerberos cloud-foundry

我遇到了类似的问题:Spring Boot Micro-service fails Kerberos Authentication when deployed on Pivotal Cloud Foundry Platform 。该解决方案仍然依赖于文件系统上的conf/keytab 文件或嵌入到该应用程序本身中。由于这是配置,因此如果我们不必这样做,那就太理想了。

使用 Cloud Foundry(特别是 PCF)时,有没有办法从您的应用程序中完全外部化此 kerberos 配置?

最佳答案

我不确定您尝试使用 kerbero 验证哪个应用程序。但我能够使用 JAAS 来对 KAFKA 进行身份验证。 keytab 文件路径是通过应用程序属性提供的,该路径可以位于操作系统上的任何位置,这意味着它可以从安装到应用程序的 PV(例如 S3 存储)加载。尽管我仍在尝试找到一种将 key 表文件上传到存储的简单方法。请参阅下面的示例代码。

  @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”

关于spring - 使用 boot 和 cloud foundry 时是否有办法外部化 kerberos 配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48427299/

相关文章:

java - 如何在简单的 Spring Boot 应用程序中 Autowiring 扩展 CrudRepository 的存储库?

java - 如何从 Spring Web 应用程序返回一个字符串作为有效的 JSON?

spring - 使用 Thymeleaf Security 为匿名用户显示特定内容

java - reactor.netty.http.server.AccessLog 产生 LoggingEvent 而不是 AccessEvent

security - Hadoop 上的 Kerberos

django - 为什么要使用 mod_auth_kerb 进行身份验证?

java - Spring Boot Integration 测试随机空闲端口

java - 如何让集成测试 setUp() 操作在嵌入式 Jetty 容器中运行的内存数据库中的 HSQL 数据?

java - 假装 : file upload configuration

java - 我应该在对 hadoop 执行每个操作之前调用 ugi.checkTGTAndReloginFromKeytab() 吗?