【问题标题】:JGIT TransportConfigCallback implementation with Apache MINA使用 Apache MINA 实现 JGIT TransportConfigCallback
【发布时间】:2022-02-14 19:51:30
【问题描述】:

JGit 过去依赖 JSch 作为其传输提供程序,但由于 JSch 不接受某些密钥(包括一些 OpenSSH 密钥)而发生了变化。

如果您在 JGit 中使用密码短语加密密钥,则推荐的 JSch 方法曾经是 to override a configuration callback, as shown in this blog article

替代方案是set a shared session factory 和这个also what the Apache MINA team recommends with a pointer to the cost of creating sessions on demand

但是,我的问题是它为整个系统范围设置了一个特定的提供程序。因此,我想实现TransportConfigCallback。最终,这需要使SshSessionFactory 适应MINA 的会话初始化代码并生成RemoteSession

有没有人这样做或看过任何样板代码?

【问题讨论】:

    标签: configuration openssh jgit apache-mina


    【解决方案1】:

    经过一番研究后的自我回答:JGit中的MINA接口被故意设置为关闭。驱动程序只接受常规的 Git 配置目录。而这就是配置系统的关键:

    • 为每个用户提供不同的 git 配置目录。
    • 在下面为所有特殊设置提供常规 git 配置 (git config) 文件
    • JGit 具有编写 Git 配置的类,因此您无需编写任何解析和序列化代码。

    我将使用相关类和源代码位置的相关链接更新此答案。

    来自version 5.5 the factory can be configured for this usecase。有关如何使用数据库提供连接信息的详细信息,请参阅NoFilesSshTest.java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多