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 章节):
- URL 参数
locale(如?locale=zh),优先级最高 - 会话中已记录的 locale
- 浏览器发送的
HTTP_ACCEPT_LANGUAGE请求头——通常就是最终生效的方式
语言格式遵循 Linux 地区惯例,如zh_CN、ru_RU,也可以只写语言代码(如zh、ru)。对于跨国企业,员工无论来自哪个国家,浏览器是什么语言,看到的登录页就是什么语言,几乎零配置成本。
💡 想新增一种语言?只需在 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.png、bg.png、favicon.png
要创建属于自己企业的主题,只需:
- 复制
simple目录为public/themes/your_company - 替换其中的
logo.png(公司 Logo)、bg.png(背景图)和favicon.png - 修改
theme.css中的配色与布局 - 将配置改为
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/publiccustom_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),仅供参考