# JeeSite TopIAM **Repository Path**: git.oschina.gaofei/jeesite-topiam ## Basic Information - **Project Name**: JeeSite TopIAM - **Description**: JeeSite 集成 TopIAM 统一认证和单点登录 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2024-05-10 - **Last Updated**: 2024-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JeeSite 整合 TopIAM 实现单点登录 ## JeeSite

JeeSite

JeeSite 是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台。 + 官网:https://jeesite.com + Gitee:https://gitee.com/thinkgem/jeesite4 ## TopIAM

logo

TopIAM 是开源的IDaas/IAM平台,支持OAuth2.x、OIDC、SAML2.0、JWT、CAS等SSO标准协议,实现用户全生命周期的管理、统一认证和单点登录、为数字身份安全赋能。 + 官网:https://eiam.topiam.cn + Gitee:https://gitee.com/topiam/eiam ## 集成步骤 ### TopIAM 配置 1. 新增OIDC应用 ![](https://oscimg.oschina.net/oscnet/up-ab33c7221e44bb38ed5f7425a1829c0d92a.jpg) ![](https://oscimg.oschina.net/oscnet/up-45e0b17621178909d7130f5716db185d609.png) 2. 配置OIDC应用 + 进入[应用配置]-[基本信息],获取 客户端 ID 和 客户端秘钥。 ![](https://oscimg.oschina.net/oscnet/up-4fc43f085fec36871bf7f49a50cd391fb6f.png) + 进入[应用配置]-[登录访问]-[单点登录],配置 登录 Redirect URI 并更改授权范围为全员可访问,方便整合测试。 ![](https://oscimg.oschina.net/oscnet/up-3dc6aabf56e2c13c521218ddeaecdfede1d.png) + 进入[应用配置]-[登录访问]-[单点登录],在页面对下方展开[应用配置信息]获取授权端点地址。 ![](https://oscimg.oschina.net/oscnet/up-7393a33fa76ecf864d14c94f7c77a2786e8.png) ### JeeSite 配置 1. 克隆本仓库源码,并添加到项目`modules`中,并在`modules`模块`pom.xml`中进行引入 ![](https://oscimg.oschina.net/oscnet/up-e666fc7447c9d63fc168d628802946c9216.png) ```xml core cms app topiam ``` 2. 实现 `TopIamOauth2Service` 接口,并实现`getSysUserCode`方法,在模块实例中,我们内置了`MockTopIamOauth2ServiceImpl`实现类来模拟登录过程。 3. 在`web`模块配置`TopIamOauth2Service`接口实现类,为方便入门,你可以配置默认`MockTopIamOauth2ServiceImpl`实现查看效果。 ```java import com.jeesite.modules.topiam.service.TopIamOauth2Service; /** * topiam 配置 * * @author SanLi * Created by support@topiam.cn on 2023/8/30 21:52 */ @Configuration public class TopIamConfiguration { /** * TopIamOauth2Service * * @return {@link TopIamOauth2Service} */ @Bean public TopIamOauth2Service topIamOauth2Service() { return new MockTopIamOauth2ServiceImpl(); } } ``` 4. 配置参数,在`web`模块`/src/main/resources/config`下找到`application.yml`文件,进行如下配置,并将${}内的内容改为TOPIAM配置步骤内获取的实际内容。 ```properties oauth2: # TOPIAM topiam: clientId: ${client_id} clientSecret: ${client_secret} serverUrl: ${base_server_url}/api/v1/authorize/1xr4ngyqvd8qnze0oxbn2uquazbmxmb6 redirectUri: ${base_redirect_uri}/js/oauth2/callback/topiam className: com.jeesite.modules.topiam.oauth.realm.request.AuthTopIamRequest ``` + clientId:对应 TOPIAM 配置客户端ID + clientSecret:对应 TOPIAM 配置客户端秘钥 + serverUrl:对应 TOPIAM 授权端点地址 + redirectUri:对应 TOPIAM 登录 Redirect URI ## 测试 社区版集成,前端入口需要自己配置,为方便测试,大家可直接发起接口访问进行测试,此时用户登录将跳转TOPIAM门户端,登陆成功后回调到JeeSite完成登录。 接口地址:`https://127.0.0.1:8980/js/oauth2/login/topiam` ## 参考文档 + https://eiam.topiam.cn/docs/application/oidc/overview/ ## 问题帮助 如果您在集成中出现任何问题,可通过TOPIAM社区交流群进行沟通 ![](https://eiam.topiam.cn/img/group-qr-code.jpg)