集成Cas登录

集成 CAS 登录

为系统接入 CAS 单点登录(SSO)能力。


一、CAS Server 搭建

推荐使用官方模板构建 CAS 服务端:

运行后默认访问地址:

https://localhost:8443/cas/

如需线上部署,建议配置 HTTPS 和有效证书。


二、客户端配置(Tduck 后端)

修改文件: src/main/resources/application.yml

✅ CAS 服务端配置:

cas:
  server:
    host:
      # CAS 服务基础地址
      url: http://localhost:8443/cas/
      # CAS 登录地址
      login_url: ${cas.server.host.url}/login
      # CAS 登出地址(登出后自动跳转到登录页)
      logout_url: ${cas.server.host.url}/logout?service=${cas.server.host.url}/login?service=${app.server.host.url}

✅ 应用服务地址配置:

app:
  # 是否开启 CAS 登录
  enabled-cas: true
  
  server:
    host:
      # 后端项目地址(确保与 CAS 中注册的地址一致)
      url: http://你的域名或IP:端口/tduck-api
  
  # 应用登录入口(默认保持不变)
  login_url: /
  
  # 前端登录成功回调地址(用于接收 CAS 登录完成后的跳转)
  web_url: http://你的域名或IP:端口/loginSuc

注意:

  • tduck-api 是固定路径,请勿修改。
  • web_url 需与前端部署地址一致,并配置 /loginSuc 作为登录成功回调页面。

三、登录流程简述(实现原理)

CAS 登录认证的核心流程如下:

  1. 用户访问系统时,跳转至 CAS 登录页;
  2. CAS 验证通过后,重定向至配置的 loginSuc 页面;
  3. 后端从 CAS 获取用户信息,颁发自定义 token(用于后续系统内鉴权);
  4. token 写入浏览器 Cookie(token 名称需前后端一致);
  5. 用户进入系统,完成登录。

四、参考提交记录

参考 Git 提交: 🔖 commit ID:db53122030e8e183928905437755fc7f3002f96d

该提交包含了相关接入逻辑代码。


示例界面截图

CAS 登录界面