JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护。他提供的API分成两个层次,底层命令和高层命令。底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功能友好的前端。
JGit主要通过SSH和HTTP(S)的方式与远程仓库进行交互,此外也可以用Git协议(只读)。通过这两种方式,必然是需要添加验证信息的。介绍如下:
(1)HTTPS - https://example.com/repo.git
CloneCommand cloneCommand = Git.cloneReposity();
CloneCommand通过setCredentialsProvider()的方法,通过赋值一个UsernamePasswordCredentialsProvider对象,来提供用户名和密码登陆。
(不建议使用HTTP的方式传送,但是也可行)
(2)SSH with Public Key -
其实通过公钥访问的链接:
git@***.***.***/user/***.git
而SSH利用公钥的访问方式的认证信息,通过JSCH库提供。而在JGit中提供了JschConfigSessionFactory的抽象类,代码如下:
SshSessionFactory sshSessionFactory = new JschConfigSessionFactory() {
@Override
protected void configure( Host host, Session session ) {
/*
解除HostKey检查,也就意味着可以接受未知的远程主机的文件,这是不安全的,这种模式只是用于测试为目的的。
利用ssh-keyscan -t rsa hostname,收集主机数据。
*/
session.setConfig("StrictHostKeyChecking","no");
}
};
以下这是在command中注册认证信息:
cloneCommand.setTransportConfigCallback( new TransportConfigCall back(){
public void configure(Transporttransport){
SshTransport sshTransport=(SshTransport)transport;
sshTransport.setSshSessionFactory(sshSessionFactory);
}
}
(3)SSH with Password - ssh://user@example.com/repo.git
使用的是上述JschConfigSessionFactory重写的configure方法中,设置password,具体就不详述了。
JGit与远程仓库链接使用的两种验证方式(ssh和https)的更多相关文章
- JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...
- gitlab两种连接方式:ssh和http配置介绍 --转自 散尽浮华
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http 1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下图 ...
- gitlab两种连接方式:ssh和http配置介绍
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http (1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下 ...
- SSH两种验证方式原理
本帖转自 http://www.cnblogs.com/hukey/p/6248468.html SSH验证方式有两种,分别为用户密码认证以及密钥认证. 1.用户密码认证方式 说明: (1) 当客户端 ...
- [ SSH 两种验证方式原理 ]
SSH登录方式主要分为两种: 1. 用户名密码验证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信 ...
- gitlab两种连接方式:ssh和http对比
共同点: 都可以使用git clone 地址 .将项目下载到本地. 不同点: 当将本地修改上传到远程服务器时,http需要输入用户名密码,ssh. 1.ssh方式: 这是一种相对安全的方式这要求将本地 ...
- web前台界面的两种验证方式
JSON的全称是"JavaScript Object Notation",意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式. 第一种: 用户体 ...
- 前端提交表单两种验证方式记录 jq或h5 required属性
JQuery: <form id="form"> <input type="text" name="aaa"> &l ...
- Git remote 远程仓库链接管理
SVN 使用单个集中仓库作为开发人员的通信枢纽,通过在开发人员的工作副本和中央仓库之间传递变更集来进行协作. 这与 Git 的分布式协作模型不同,后者为每个开发人员提供了自己的仓库副本,并具有自己的本 ...
随机推荐
- LeetCode【第一题】Two Sum
准备刷一刷LeetCode了. 题目: ''' Given an array of integers, return indices of the two numbers such that they ...
- java 文件类操作(转载)
11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...
- 第 5 章 工厂方法模式【Factory Method Pattern】
以下内容出自:<<24种设计模式介绍与6大设计原则>> 女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了.这个故事是说 ...
- Uva 1050 Ars Longa
Description You have been struck with inspiration, and are designing a beautiful new art sculpture f ...
- ASP 下 能作为json输出后js能解密的 escape 函数
网络上流传的 vbsEscape UnEscape都只针对asp而言,js传递给asp时可进行转义解码,但asp输出json时如果用这些函数进行编码的话,js是无法正常解码的. 下面是经过实际验证可用 ...
- Mysql Partition 理论知识总结
简述: 本文内容主要 Giuseppe Maxia 曾在Mysql Conference & Expo 2010发表关于 <Mysql Partition in Mysql 5.1 &a ...
- jQueryEasyUI中DataGrid的height,width,fit,fitColumns属性
height: 600, //不指定则默认垂直包裹,指定了则固定 width:1200,//不指定则水平100%平铺,指定了则固定 fit:false,//true:高度填充父窗体,忽略height属 ...
- Notice
13.793103448276 Notice: Undefined offset: -1 in C:\Zend\Apache2\htdocs\crawlWebsite\Crawl360.php on ...
- dev中gridview控件 z
目录:一.客户端常用1.常用API2.聚焦行变更事件3.客户端选择多行4.客户端选择行5. 获取选择的行数目6.单击行时,选中行7.通过checkbox 选择行8.选择所有行9.启动编辑框,Conta ...
- Spring之HelloWorld再起
第一步:打开File->New->Other…,选择Java Project,创建标准Java项目. 第二步:在项目下添加lib文件夹用于存放jar文件,resources用于存放xml配 ...