目的
使用 gitlab账号通过 OAuth2 登录 sonarqube
前提
sonarqube 到 gitlab 登记
gitlab port = 8090 端口
- application id
- secret
sonarqube 配置 gitlab
sonarqube port=20000
效果展示
流程分析
001-sonarqube-login-with-gitlab(sonarqube 登录页)![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/813b64b9170c70e716b69e9c234f80d3.jpeg)
002-get-authorization-code-from-gitlab
发起获取
authorization-code
的请求
003-login-gitlab-with-authenticity_token
用获取的 authorization code + gitlab 用户名和密码登录 gitlab。
004-gitlab-self-verify-to-get-code
gitlab 自我校验一次,向 sonarqube 提供 code。
005-gitlab-self-verify-provide-code-for-sonarqube
006-use-code-to-login-sonarqube
使用之前的 code 登录 sonarqube,得到 jwt Token。
007-get-jwt-session-token-after-login-sucess
jwt Token 验证
References
1. https://docs.sonarqube.org/latest/analysis/gitlab-integration/
2. https://docs.gitlab.com/ee/integration/oauth_provider.html
3. https://docs.gitlab.com/ee/integration/oauth_provider.html#user-owned-applications
4. https://docs.gitlab.com/ee/api/oauth2.html
5. https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302
6. OAuth 2.0 的四种方式
7. jwt-token