jeecg的单点登录

在 JeecgBoot 中,单点登录(SSO,Single Sign-On)是一个常见的需求,它通常用于多个系统共享一个统一的登录认证机制。调试 Jeecg 的单点登录时,可以分为以下几个步骤:

目录

1. 确保 SSO 环境搭建

2. JeecgBoot SSO 配置

修改 application.yml 配置文件

参数解释

登录 URL 和回调 URL

3. 调试流程

1. 启动 JeecgBoot 服务

2. 访问登录页面

3. 认证成功后返回系统

4. 排查常见问题

4. 扩展:本地调试单点登录

使用 Ngrok 暴露本地服务

5. 日志查看与调试


1. 确保 SSO 环境搭建

首先,你需要确保有一个中央认证服务器(如 CAS、Keycloak 或 OAuth 服务器)来处理认证。JeecgBoot 支持 OAuth2 标准协议进行单点登录,因此可以对接多个不同的 SSO 解决方案。

2. JeecgBoot SSO 配置

JeecgBoot 支持多种方式的单点登录,如使用 OAuth2、Keycloak、CAS 等方式。这里假设你使用 OAuth2 协议(如对接 Keycloak 或其他 OAuth2 提供商)来实现单点登录。

修改 application.yml 配置文件

首先,打开 JeecgBoot 的配置文件 application.yml,在其中配置 SSO 相关的参数。

spring:
  security:
    oauth2:
      client:
        registration:
          sso:  # 配置 OAuth2 客户端
            client-id: your-client-id
            client-secret: your-client-secret
            scope: openid,profile,email
            authorization-grant-type: authorization_code
            redirect-uri: "{baseUrl}/login/oauth2/code/sso"
        provider:
          sso:  # 配置 OAuth2 提供商
            authorization-uri: https://your-oauth-server/auth/realms/{realm}/protocol/openid-connect/auth
            token-uri: https://your-oauth-server/auth/realms/{realm}/protocol/openid-connect/token
            user-info-uri: https://your-oauth-server/auth/realms/{realm}/protocol/openid-connect/userinfo
            user-name-attribute: preferred_username
参数解释
  • client-id: 在 OAuth2 服务器上创建的客户端 ID。
  • client-secret: 客户端的密钥,用于 OAuth2 身份认证。
  • authorization-grant-type: 授权类型,这里使用的是 authorization_code
  • redirect-uri: 登录后的回调地址,通常是 /login/oauth2/code/sso
  • authorization-uri: OAuth2 服务器的授权地址。
  • token-uri: 获取 token 的地址。
  • user-info-uri: 获取用户信息的地址。
  • user-name-attribute: 作为用户名的属性字段,通常为 preferred_username
登录 URL 和回调 URL
  • 登录 URL 通常是你系统的 /login 地址,当用户访问该地址时,系统会自动重定向到 OAuth2 提供商的认证页面。
  • 当用户成功认证后,OAuth2 提供商会将用户重定向到你配置的 redirect-uri,并返回授权码。系统会使用该授权码获取访问令牌并获取用户信息。

3. 调试流程

1. 启动 JeecgBoot 服务

确保你的 JeecgBoot 项目已经启动,确保基本配置没有错误。通过 http://localhost:8080/ 或你的自定义端口访问系统。

2. 访问登录页面

访问 JeecgBoot 的登录页面 /login,系统会重定向到配置的 OAuth2 认证服务器进行认证。

3. 认证成功后返回系统

认证通过后,OAuth2 服务器会将用户重定向到配置的回调地址。JeecgBoot 会从 OAuth2 服务器获取授权码,用授权码换取访问令牌,并获取用户的详细信息。

4. 排查常见问题
  • 重定向失败:检查 OAuth2 提供商的回调地址配置是否正确,应与 JeecgBoot 配置中的 redirect-uri 保持一致。
  • 授权失败:检查客户端 ID 和密钥是否正确,授权类型是否匹配。
  • 获取用户信息失败:检查 user-info-uri 是否配置正确,并且 JeecgBoot 是否能够成功请求该地址。
  • 跨域问题:如果认证服务器和 JeecgBoot 位于不同域名下,可能会遇到跨域问题。可以在 JeecgBoot 中通过 CorsConfiguration 配置跨域访问。

4. 扩展:本地调试单点登录

对于本地开发和调试,可以使用 Ngrok 或类似工具将本地应用暴露在外网,方便 OAuth2 提供商回调本地开发环境的 URL。

使用 Ngrok 暴露本地服务
ngrok http 8080

这会生成一个临时外网 URL,可以将这个 URL 配置到 OAuth2 提供商的回调地址中,方便调试。

5. 日志查看与调试

  • 查看控制台日志:在 JeecgBoot 启动时,控制台会输出一些认证相关的信息。如果遇到问题,可以通过控制台日志进行排查。
  • 查看 OAuth2 服务器日志:如果是 OAuth2 服务器的配置问题,可以在该服务器的日志中找到相应的错误提示。

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

战族狼魂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值