TOPIAM v1.1.0 源码启动及异常处理
侧边栏壁纸
  • 累计撰写 207 篇文章
  • 累计收到 1,514 条评论

TOPIAM v1.1.0 源码启动及异常处理

萧瑟
2025-08-06 / 1 评论 / 47 阅读 / 正在检测是否收录...

项目简介

TOPIAM是一款开源单点登录与统一身份认证程序,支持 OIDC、OAuth2、SAML2、JWT、CAS 等主流认证协议。

项目分析

官网提供的一键脚本是基于Docker部署,与开源的代码差了一部分。Docker是2.0.0版本,开源社区上发布的是1.1.0版本。

本文将以开源项目1.1.0版本提供使用说明,研究其部署过程仅为学习使用,请勿做他用(商用)。

本地环境

giteegithub多了几次commits,本文将以master为例。最后提交日期为 gitee 2025-05-15提交为节点。

运行环境 jdk 17 node v18.16.0 为基础,其他环境未测试。

后端启动

拉取代码,你将得到以下代码

代码结构

将项目下的deploy\docker\topiam\conf\topiam.properties中的mysql和redis配置信息复制出来,分别修改子工程 eiam-consoleeiam-openapieiam-portal 下的配置文件src\main\resources\application.yml

后端配置修改

启动顺序的话,建议按照我上面的的排序,也可以不用,好像没啥影响。

顺便说下项目的作用:

eiam-console: 管理员控制台,俗称后台,第一次启动会初始化用户信息,默认密码为admin/topiam.cn

eiam-openapi:api接口,看代码应该是对外提供服务的

eiam-portal:用户端,系统用户的门户测,后台管理员是无法在这个页面登录的

在idea中有一个服务管理,这里可以看到有三个SpringBoot启动类,全选一键启动。

服务启动

启动完后,如上图,后端项目算是已经启动成功了,只需要修改数据库和redis配置即可,其他无需调整。

前端启动

后端启动后,最后一个eiam-portal 服务内嵌入了一个前端服务,这个是基础用户的东西,使用admin是无法登录的,因为初始化的时候,系统是没有用户的。

这个用户门户的代码也在eiam-portaleiam-portal\src\main\portal-fe,这个前端可以不用启动,使用后端内嵌的就可以了。

下面我们来启动eiam-console后台的前端项目,目录在eiam-console\src\main\console-fe

执行以下命令(eiam-portal启动也可以使用下列命令,只是需要把cd 的命令换一下)

cd eiam-console\src\main\console-fe
pmpm install

依赖安装完后,执行npm run dev即可,端口应该是8000,如果两个前端都启动了,那另一个可能是8001。

前端启动

输入上面默认密码(admin/topiam.cn)即可看到后台管理页面,可以配置后台的一些设置。

注意:如果你跟我一样使用的是master分支,执行pnpm install和npm run dev的时候,各会一个报错,那么就继续向下看。

husky版本报错

husky版本报错解决方案

修改eiam-console\src\main\console-fe\package.jsoneiam-portal\src\main\portal-fe\package.json 中这个 install 删除即解决这个问题。

codemirror报错

我看git提交记录中修改了这个版本,从5.65.18 升级到了6.0.1 但是这个属于大版本的升级,代码没改动,所以影响了启动,将版本修改回去再次执行pnpm install 即可解决这个问题。

codemirror报错解决方案

总结语

开源不易,请尊重开源的知识成果。
码字不易,搬运请注明出处。

评论 (1)

取消
  1. 头像
    wu先生
    湖北省黄冈市英山县 Windows 10 · Google Chrome

    技术文,不明觉历哈。

    回复