项目简介
TOPIAM是一款开源单点登录与统一身份认证程序,支持 OIDC、OAuth2、SAML2、JWT、CAS 等主流认证协议。
项目分析
官网提供的一键脚本是基于Docker部署,与开源的代码差了一部分。Docker是2.0.0版本,开源社区上发布的是1.1.0版本。
本文将以开源项目1.1.0版本提供使用说明,研究其部署过程仅为学习使用,请勿做他用(商用)。
本地环境
gitee比github多了几次commits,本文将以master为例。最后提交日期为 gitee 2025-05-15提交为节点。
运行环境 jdk 17 node v18.16.0 为基础,其他环境未测试。
后端启动
拉取代码,你将得到以下代码

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

启动顺序的话,建议按照我上面的的排序,也可以不用,好像没啥影响。
顺便说下项目的作用:
eiam-console: 管理员控制台,俗称后台,第一次启动会初始化用户信息,默认密码为admin/topiam.cn
eiam-openapi:api接口,看代码应该是对外提供服务的
eiam-portal:用户端,系统用户的门户测,后台管理员是无法在这个页面登录的
在idea中有一个服务管理,这里可以看到有三个SpringBoot启动类,全选一键启动。

启动完后,如上图,后端项目算是已经启动成功了,只需要修改数据库和redis配置即可,其他无需调整。
前端启动
后端启动后,最后一个eiam-portal 服务内嵌入了一个前端服务,这个是基础用户的东西,使用admin是无法登录的,因为初始化的时候,系统是没有用户的。
这个用户门户的代码也在eiam-portal 中 eiam-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版本报错

修改eiam-console\src\main\console-fe\package.json 和 eiam-portal\src\main\portal-fe\package.json 中这个 install 删除即解决这个问题。
codemirror报错
我看git提交记录中修改了这个版本,从5.65.18 升级到了6.0.1 但是这个属于大版本的升级,代码没改动,所以影响了启动,将版本修改回去再次执行pnpm install 即可解决这个问题。

总结语
开源不易,请尊重开源的知识成果。
码字不易,搬运请注明出处。
技术文,不明觉历哈。