【问题标题】:SVNKit authentication using SSL and certificate使用 SSL 和证书的 SVNKit 身份验证
【发布时间】:2012-10-18 04:33:37
【问题描述】:

SVNKit 的新手。我很难弄清楚如何在我的 svn 存储库中进行身份验证。

基本上,当我使用命令行 SVN 代码连接到我的存储库时,它会告诉我接受一些证书并请求我的用户名和密码。它也使用 https。

但是使用我从 wiki 看到的代码,它会说类似这样的内容,但这并不容易。

ISVNAuthenticationManager authManager =
  SVNWCUtil.createDefaultAuthenticationManager(name, password);

我在某处阅读了有关创建您自己的身份验证提供程序的信息,但似乎找不到足够的代码来告诉我这是如何完成的。

如何使用 SSL 和证书对 svn 存储库进行身份验证?

【问题讨论】:

    标签: java svn svnkit


    【解决方案1】:

    这取决于您的目的,您可以创建默认的身份验证管理器:

    ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager();
    

    它使用来自~/.svn/ 目录的设置。

    如果您希望身份验证管理器从控制台询问密码/密钥,请查看 SVNCommandEnvironment#createClientAuthenticationManager 实现。

    但您也可以通过枚举凭据来创建最简单的身份验证管理器(此选项不需要~/.svn/ 目录):

    ISVNAuthenticationManager authManager = new 
        BasicAuthenticationManager(new SVNAuthentication[] {authentication1, authentication2, ...});
    

    所以您只需将 SVNSSLAuthentication 实例(包含正确的证书文件和密码)作为数组元素之一传递。 SVNKit 将尝试这些身份验证直到成功。

    【讨论】:

    • 谢谢!那么这是否意味着我只需要接受证书和凭据,以便它会在我的 Windows 应用程序数据中创建必要的 svn 文件夹?
    • 是的,DefaultSVNAuthenticationManager 实现了默认的 SVN 行为(并将所有必需的数据存储在 ~/.svn 或 windows 应用程序数据中)。要接受证书,需要将 SVNConsoleAuthenticationProvider 或任何其他 ISVNAuthenticationProvider 传递给身份验证管理器(请参阅如何在 SVNCommandEnvironment#createClientAuthenticationManager 中实现)
    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 2019-01-03
    • 2015-07-29
    • 2014-10-08
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2016-06-23
    相关资源
    最近更新 更多