文档章节

Gitlab 认证机制

wise2c
 wise2c
发布于 2017/01/06 10:08
字数 491
阅读 148
收藏 0

前言

睿云的持续交付平台WiseBuild项目中实现了通过GitLab API获取项目资源,完成了GitLab的集成。其中关于GitLab的OAuth2 Application认证机制挺有意思,下面就简单的梳理一下知识点。

GitLab API

Gitlab 认证机制

由图我们可以看出调用API需要带上token,下面主要聊下Private Token和Access Token。

API文档:https://docs.gitlab.com/ee/api/projects.html

Token获取

获取GitLab的Private Token

Gitlab 认证机制

如上图,点击Profile Settings-选择Account可以看到Private Token。

GitLab为每个用户都分配了一个Private Token,通过该token能获取到该用户下能看到的全部项目资源。

但是,往往在项目开发中,每个人看到项目资源的权限是不同的,也就是说GitLab为每个人分配的Private Token是不一样的。因此需要一种能根据每个用户动态验证生产的Token,那就是Access Token了。

获取Access Token流程

Gitlab 认证机制

如上图,获取Acess Token需要经过的步骤如下:

  • 带上clientId和回调地址,请求GitLab的auth认证Api。

  • 跳转登录界面进行登录。

  • 确认授权。

  • 回调函数可以获取到GitLab返回的code。

  • 遵循Oauth2认证机制,带上:ClientId、code、secret、RedirectURI。

  • 获取到Access Token。

获取Access Token的操作步骤

生成ClientId、Secret以及配置回调URL。

Gitlab 认证机制

如上图,输入:name和Redirect,点击save application创建一个Application。

Gitlab 认证机制

如上图生成的Application id、secret用于Oauth2认证。

java实现OAuth2认证

引入OAuth2 client依赖 。

Gitlab 认证机制

调用OAuth2 client函数调用GitLab的tokenAPI (http://git.xxx.com/oauth/token),获取Access Token 。

Gitlab 认证机制

Gitlab 认证机制

带上Access Token 获取GitLab的projects资源

获取project的API:

http://git.xxx.com/api/v3/projects?access_token=%s

Gitlab 认证机制

能动态授权,获取到GitLab资源信息,这样就可以在项目中轻松的集成GitLab了。

关于GitLab认证机制的文档

https://docs.gitlab.com/ce/api/oauth2.html

https://docs.gitlab.com/ee/api/projects.html

01e5c73f387ac132cdc51b8d15276a49.jpg

微信搜索:Wise2C | 一个有趣的公众号

© 著作权归作者所有

wise2c
粉丝 2
博文 13
码字总数 26332
作品 1
深圳
私信 提问
gitlab修改redis、postgresql配置

由于工作需要将redis认证方式改为了允许远程连接,并作了requirepass设置,postgresql认证方式也改为了允许远程连接并且需要通过密码。 引起的问题 --- 解决办法 --- 1. 修改gitlab数据库配置...

深山猎人
2015/03/02
8K
1
使用gitlab token登录maven私服(sonatype nexus)

使用gitlab token登录maven私服(sonatype nexus),这里需要用到nexus-gitlab-token-auth-plugin。 选择nexus-gitlab-token-auth-plugin原因: 不同的人使用个人帐号,使得组件上传可追溯(...

donhui
2017/08/04
210
0
CAS之5.2x版本之Gitlab单点登录-yellowcong

配置gitlab的单点登录,这个地方需要注意的是,有两种方案,1、用户必须有gitlab的账户才能用cas账户登录,这种做法,需要手动与cas用户关联。2、可以直接通过cas登录gitlab,不需要有gitlab的...

yelllowcong
2018/04/14
0
0
Gitlab Pages 启用

Gitlab Pages 启用 本文目标是在一台安装了系统上的服务器上,开启服务。 系统版本: 准备事项 开放端口 Gitlab Pages 服务默认: 准备域名 ,最好是一个独立的域名,不要使用系统的域名。 可...

DrChenXX
03/17
208
0
Ubuntu 14.04下安装Gitlab

GitLab: GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它提供Git版本控制、代码检查、Bug跟踪和Wiki,它可以通过LDAP或活动目录来进...

eui988
2015/06/04
175
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 编写redisUtils工具类,防止高并发获取缓存出现并发问题

import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundValueOperations;import org.......

huangkejie
36分钟前
5
0
JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
53分钟前
94
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
今天
5
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
今天
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部