rubycas-server 国际化与自定义登录页:快速打造企业专属 SSO 单点登录界面的完整指南
2026/8/25 10:04:37 网站建设 项目流程

rubycas-server 国际化与自定义登录页:快速打造企业专属 SSO 单点登录界面的完整指南

【免费下载链接】rubycas-serverProvides single sign-on authentication for web applications, implementing the server-end of Jasig's CAS protocol.项目地址: https://gitcode.com/gh_mirrors/ru/rubycas-server

Rubycas-Server 是一款用 Ruby 编写的开源 CAS 服务器,为 Web 应用提供 SSO 单点登录认证。它内置 12 种语言的国际化工具和多主题登录页样式,只需修改几个配置项,就能把默认的登录页变成带有你公司 Logo、名称和标语的企业级统一认证入口。本文带你从零完成这套定制。

🌍 国际化:内置 12 种语言开箱即用

Rubycas-Server 的界面文本(用户名/密码标签、登录按钮、各类错误提示、登录成功通知等)全部由 locales/ 目录下的 YAML 语言包驱动,当前内置 12 个语言版本:

语言文件语言语言文件语言
locales/en.yml英语locales/fr.yml法语
locales/zh.yml简体中文locales/de.yml德语
locales/zh_tw.yml繁体中文locales/es.yml / es_ar.yml西班牙语
locales/ru.yml俄语locales/it.yml意大利语
locales/jp.yml日语locales/pl.yml波兰语
locales/pt.yml葡萄牙语

以简体中文为例,语言包覆盖了登录页的全部用户可见文本,结构分为 4 组:

  • error:各类错误提示(如"错误的帐号或密码")
  • notice:状态通知(如"你成功登录了")
  • label:表单标签(用户名、密码、中央登录标题)
  • button:按钮文本(登录)

参见 locales/zh.yml。

🎯 语言是如何自动检测的?

无需手动设置,服务器会按以下优先级自动决定显示语言(详细说明见 config/config.example.yml 的 LOCALIZATION 章节):

  1. URL 参数locale(如?locale=zh),优先级最高
  2. 会话中已记录的 locale
  3. 浏览器发送的HTTP_ACCEPT_LANGUAGE请求头——通常就是最终生效的方式

语言格式遵循 Linux 地区惯例,如zh_CNru_RU,也可以只写语言代码(如zhru)。对于跨国企业,员工无论来自哪个国家,浏览器是什么语言,看到的登录页就是什么语言,几乎零配置成本。

💡 想新增一种语言?只需在 locales/ 下仿照现有语言包新增一个 YAML 文件,键名保持一致即可,底层由 R18n 库加载(见 lib/casserver/base.rb)。

🎨 自定义登录页:三步完成品牌化

登录页的样式与文案主要由 config/config.example.yml 中 "LOOK & FEEL" 配置区控制,核心是以下三个配置项:

1.organization:显示你的公司名

organization: CAS

修改为你的公司或组织名称后,它会出现在登录页顶部的标题栏中("XX 公司 + 整合登录"),同时也会作为浏览器标签页的标题,见 lib/casserver/views/layout.erb。

2.theme:切换登录页主题

theme: simple

主题文件位于 public/themes/ 目录,结构非常清晰:

  • 基础样式:public/themes/cas.css —— 定义登录框布局、输入框、消息提示(错误/成功/通知)的通用样式
  • 主题覆盖层:public/themes/simple/theme.css —— 在基础样式之上叠加背景图、Logo 尺寸、登录框配色
  • 主题图片simple/目录下的logo.pngbg.pngfavicon.png

要创建属于自己企业的主题,只需:

  1. 复制simple目录为public/themes/your_company
  2. 替换其中的logo.png(公司 Logo)、bg.png(背景图)和favicon.png
  3. 修改theme.css中的配色与布局
  4. 将配置改为theme: your_company

这种"基础样式 + 覆盖层"的分层设计意味着你只维护自己的一份 CSS,升级也不会丢失品牌样式。

3.infoline:登录框底部的品牌标语

infoline: Powered by <a href="http://rubycas.github.com">RubyCAS-Server</a>

支持 HTML,可以放一段文字、一个链接,也可以设为空白。登录框底部会渲染这段内容(见 lib/casserver/views/_login_form.erb)。

🧩 进阶:完全接管登录页视图

如果改样式还不够,你可以用自定义视图目录整体替换登录页面。在配置中启用:

custom_views: /path/to/custom/views public_dir: /path/to/custom/public
  • custom_views设置后,将替代默认的 lib/casserver/views/ 视图目录——只需把 login.erb、layout.erb、_login_form.erb 复制过去,再按公司 VI 重新排版
  • public_dir设置后,CSS、图片等静态资源改从你指定的目录加载,方便接入公司统一的前端资源管线

这两个选项让 rubycas-server 的登录页可以做到与企业官网完全一致的视觉风格。

✅ 小结

  • 国际化:12 种语言内置,按 URL 参数 → 会话 → 浏览器语言头的顺序自动切换
  • 品牌化三步走:改organization公司名 → 换theme主题 → 写infoline标语
  • 深度定制custom_views+public_dir可完全接管页面结构与静态资源

配置好数据库和认证方式(SQL、LDAP、ActiveDirectory 等,见 config/config.example.yml 的注释示例)之后,你的企业就已经拥有了一个多语言、带自有品牌的 SSO 单点登录服务器。

【免费下载链接】rubycas-serverProvides single sign-on authentication for web applications, implementing the server-end of Jasig's CAS protocol.项目地址: https://gitcode.com/gh_mirrors/ru/rubycas-server

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询