java使用jGit时,跳过ssl验证,could not be established because of SSL problems
JGit拉取代码报错could not be established because of SSL problems
·
报错
could not be established because of SSL problems
命令行方式拉取报错
直接通过命令行进行代码拉取时,可以用下边的方法:
git config --global http.sslVerify false
查看设置是否成功
git config --global --list
JGit api方式拉取报错
如果我们使用的是JGit api,想通过api本身启用它,可以用下边的方法:
直接修改jgit拉取代码方式,我们首先在其中初始化存储库,然后更改其sslVerify设置。
注意:始终首选按仓库,按服务器sslVerify忽略;全局设置标志是一个安全问题。将该URL替换为您要连接到的服务器的特定“基本” URL。
Repositoryrepo = Git.init().setDirectory(this.tempGitDir.toFile()).call();
repo.getRepository()
.getConfig()
.setBoolean("http", "https://selfsigned.server.com", "sslVerify", false);
URIish u = createURIish();
repo.remoteAdd()
.setName("origin")
.setUri(u)
.call();
repo.pull()
.setCredentialsProvider(new UsernamePasswordCredentialsProvider("token", pat))
.setRemote("origin")
.setRemoteBranchName("master")
.call();
createURIish方法仅使用远程URI创建一个新的URIish对象,我使用另一种方法来降低复杂性(嵌套尝试):
private URIish createURIish() throws InvalidRemoteException {
URIish u = null;
try {
u = new URIish(this.gitUrl);
} catch (URISyntaxException e) {
throw new InvalidRemoteException(
MessageFormat.format(JGitText.get().invalidURL, this.gitUrl), e);
}
return u;
}
然后将URIish添加为新的远程服务器,最后调用pull命令。为此,我使用了UsernamePasswordCredentialsProvider,以便可以传递所连接的TFS服务器使用的PAT,但是您使用的username:pasword也应该可以使用。
更多推荐
已为社区贡献8条内容
所有评论(0)