1 Star 0 Fork 0

openLiBing/portal_service

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

CI门户服务

CI门户服务(ci-portal-service)与CI门户页面(ci-portal-website)组成CI门户网站,提供用户登录、CI数据查询、代码问题状态修改等功能。基于ServiceComb框架开发。 主要功能为:

  • 集成码云OAuth登录
  • 将请求转发给api-gateway服务
    • 基于URL前缀过滤,只将白名单中的URL转发给gateway
    • 在请求头中加入token、时间戳签名,由gateway校验请求是否合法
    • 将用户名、id放到query中,gateway将请求透传给backend服务,backend使用用户名、id对用户权限进行校验

原理机制

  • 与gateway服务类似,扩展CommonHttpEdgeDispatcher类,当匹配/不匹配预定义的URL时,执行特定的操作。
  • 与码云登录相关的URL在CI门户服务中实现相关逻辑(未在ci-portal-schemas中定义):
    • /api/portal-service/login 判断用户是否登录,未登录则重定向至码云;已登录则不需要跳转
    • /api/portal-service/validateLogin 码云回调接口
    • /api/portal-service/logout 登录,注销CI门户Token和码云Token
    • /api/portal-service/getInfo 查询码云用户基本信息
  • 在META-INF/services/org.apache.servicecomb.transport.rest.vertx.VertxHttpDispatcher文件中,增加Dispatcher类。
  • 转发规则:src/main/resources/application.yml中servicecomb.http.dispatcher.edge.http
  • 运行依赖
    • 配置中心: src/main/resources/application.yml中servicecomb.config.client
    • 注册中心: src/main/resources/application.yml中servicecomb.service.registry

代码说明

关键目录和文件: │ .gitignore │ pom.xml │ README.md │ └─src └─main ├─java │ └─com │ └─huawei │ └─ci │ └─portal │ │ CiPortalServiceApplication.java # 启动类 │ │ │ ├─controller │ │ AdminDispatcher.java │ │ DefaultDispatcher.java │ │ SelfDispatcher.java │ │ │ ├─enums │ │ GitEEConstants.java │ │ PermissionConstants.java │ │ │ ├─filter │ │ AuthHandler.java │ │ │ ├─model │ │ InfoModel.java │ │ RestResponse.java │ │ TokenModel.java │ │ │ └─util │ AuthHelper.java │ GiteeOAuthUtil.java │ HttpContextUtil.java │ JwtUtils.java │ └─resources │ application-alpha.yml │ application-beta.yml │ application-local.yml │ application-prod.yml │ application.yml │ log4j2.xml │ ├─config │ cse.handler.xml │ └─META-INF └─services org.apache.servicecomb.transport.rest.vertx.VertxHttpDispatcher

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openlibing/portal_service.git
git@gitee.com:openlibing/portal_service.git
openlibing
portal_service
portal_service
master

搜索帮助