项目简介
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
即可解决这个问题。
总结语
开源不易,请尊重开源的知识成果。
码字不易,搬运请注明出处。
技术文,不明觉历哈。