cas单点登录-自定义登录界面 / 自定义主题风格(三)

3 篇文章 0 订阅
3 篇文章 0 订阅

cas单点登录-自定义登录界面 / 自定义主题风格(三)

在前面的文章中,介绍了使用cas实现SSO单点登录,静态登录,使用mysql数据库登录。但是在登录时都是跳转到了同一个登录界面。
假设现在我有两个子站点app1.comapp2.com. 两个站点使用不同的样式。那该如何操作呢?

一、主题

cas客户端接入称之为service,必须经过cas的允许才能进行登录,当然不同的客户端可以做不同的事情,其中包括:

  • 自定义主题(各客户端登录页自定义)
  • 自定义属性(服务属性(固定)与用户属性(动态))
  • 自定义协议
  • 自定义登录后跳转方式,跳转路径
  • 授权策略(拒绝属性、可登录时间范围限制、等等)
  • 拒绝授权模式
  1. 主题
    先介绍下什么叫主题,主题就意味着风格不一,目的就是为了在不同的接入端(service)展示不同的页面,就例如淘宝登录、天猫登录,其中登录点还是一个sso,但淘宝登录卖的广告是淘宝的,而天猫登录卖的广告是天猫的。

简略看完后,会有以下的规范:

  • 静态资源(js,css)存放目录为src/main/resources/static
  • html资源存(thymeleaf)放目录为src/main/resources/templates
  • 主题配置文件存放在src/main/resources并且命名为[theme_name].properties
  • 主题页面html存放目录为src/main/resources/templates/<theme-id>

自定义登录相关的配置文件目录

  1. 主题渲染流程
    官方文档明确说明,登录页渲染文件为casLoginView.html,那意味我们在主题具体目录下新增改文件并且按照cas要求写那就可以了,最终目的还是获取到对应的配置文件,渲染对应主题的登录页。

自定义登录渲染流程

  1. json配置
{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^https://www.example.org",
  "name" : "MyTheme",
  "theme" : "[theme_name]",
  "id" : 1000
}

例如,需求:对所有http://app1.cas.*开头请求的service进行允许认证。
resources/services下新建文件app1配置文件app1-10003.json

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|http)://app1.cas.*",
  "name" : "app1",
  "id" : 10003,
  "theme": "app1",
  "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
  "evaluationOrder" : 10000
}

** 注意:

json文件名字规则为${name}-${id}.json,id必须为json文件内容id一致

修改 applicantion.properties 配置

#开启识别json文件,默认false
cas.serviceRegistry.initFromJson=true

host文件修改

在系统的hosts文件中添加如下内容,在这里我比较推荐使用SwitchHosts软件来管理hosts文件。

#cas test
#cas server
127.0.0.1	cas.server.com
#cas service1
127.0.0.1 app1.cas.com
#cas service2
127.0.0.1 app2.cas.com

源码

本节内容比前面两节内容稍微有点复杂,可以下载源码进行查看。app1与app2的json、properties、css、登录页面的文件拉取源码进行查看。
cas自定义登录源码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值