上一篇 【SSO单点系列】(1):CAS环境的搭建介绍了CAS最简单环境的搭建,以及一个例子用来讲解CAS的一个最基础的用法。 今天主要是介绍如何对CAS登录页进行个性化定制。

    一.开始

  下图是CAS默认的登录界面,可以看到这界面是肯定不能直接用在生产环境上的,因为上面的有许多英文,简单来说,这是一个对客户非常不友好的界面。那么怎么修改它呢?我们接着往下看!

  ps:这个页面在工程中的地址为 cas\WEB-INF\view\jsp\default\ui\casLoginView.jsp,大家可以打开看一看。

aaarticlea/png;base64,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" alt="" width="474" height="337" />

  

  二.配置文件修改

  其实CAS所有的界面位置都是在cas.properties(具体位置:cas\WEB-INF\cas.properties)中指定的。我们打开这个文件,找到下面这行

cas.securityContext.status.allowedSubnet=127.0.0.1

cas.themeResolver.defaultThemeName=cas-theme-default

//注意下面这行
cas.viewResolver.basename=default_views

  看cas.viewResolver.basename 这个键值对,它的值是default_views,表示的是默认的视图配置,其实是一个properties文件的名称而已。大家找找看,在工程中是不是有一个名为default_views.properties(具体位置:cas\WEB-INF\classes\default_views.properties )的文件,文件的具体内容如下:

casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/default/ui/casLoginView.jsp ### Display login (warning) messages
casLoginMessageView.(class)=org.springframework.web.servlet.view.JstlView
casLoginMessageView.url=/WEB-INF/view/jsp/default/ui/casLoginMessageView.jsp ### Login confirmation view (logged in, warn=true)
casLoginConfirmView.(class)=org.springframework.web.servlet.view.JstlView
casLoginConfirmView.url=/WEB-INF/view/jsp/default/ui/casConfirmView.jsp ### Logged-in view (logged in, no service provided)
casLoginGenericSuccessView.(class)=org.springframework.web.servlet.view.JstlView
casLoginGenericSuccessView.url=/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp ### Logout view (/logout)
casLogoutView.(class)=org.springframework.web.servlet.view.JstlView
casLogoutView.url=/WEB-INF/view/jsp/default/ui/casLogoutView.jsp //省略

可以看到我们的登录页面就是配置在上面的, 里面还配置了 登录成功页面,退出页面等,这个后面会具体说明。

我们知道了页面配置后,那么是不是可以根据业务来具体订制一套页面了。

1.在cas.properties 修改 cas.viewResolver.basename  值为 bokeyuan_view ,那样系统就会自动会查找 bokeyuan_view.properties 这个配置文件

2.第1点中查找的 bokeyuan_view.properties 是没有的,我们要自己新建,直接复制原来的 default_views.properties 就行了,重命名为bokeyuan_view.properties

3.但是bokeyuan_view.properties 中的地址还是 /WEB-INF/view/jsp/default ,我们全部替换把这地址替换成 WEB-INF\view\jsp\bokeyuan

4.接下来我们把 cas\WEB-INF\view\jsp\default 下面的所有文件复制下,然后重命名为我们需要的名称,cas\WEB-INF\view\jsp\bokeyuan

5.这样我们就可以可以随意修改登录界面了

ps:有人说直接修改原来的 cas\WEB-INF\view\jsp\default\ui\casLoginView.jsp 就行了,省得麻烦。 其实这样也是行的,但这样如果后面需要初始的界面,那样就没了。

采用配置修改的方式主要会更加灵活点,可以保留原来的备份。

pps:登录界面中的jquery库 是配置在cas\WEB-INF\view\jsp\default\ui\includes\bottom.jsp中的,但是这个是直接引用googleapis 的,我们是不能访问的,需要修改成你本地或者能够访问的CDN库(百度CDN、360CDN 等)

ppps:你可以随意修改原来的界面,但是原来的逻辑不能修改,其实主要是 form:form 这标签里的东西不要变了。反正你只修改样式,是肯定不会错的

三、总结

这样我们就可以按照我们的需求 个性化定制我们的登录界面了。

原来的界面上只有姓名、密码两个表单,可能大家还想在上面加上验证码, 加验证码 在下一篇中进行介绍,大家敬请期待!

好了 ,打完收工!

  

【SSO单点系列】(2):CAS4.0 登录页的个性化定制的更多相关文章

  1. 【SSO单点系列】(3):CAS4.0 登录页验证码的添加

    2016.08.23 更新 注意:这个教程只适合4.0版本的,4.1以及以上的版本的已经不试用了, 后面几篇有人提到过 源码网盘链接更新了下 : 链接: http://pan.baidu.com/s/ ...

  2. 【SSO单点系列】(1):CAS4.0 环境的搭建

    一.概述 今天开始写CAS相关的第一篇文章,这篇文章主要是关于CAS环境的搭配,提供给刚刚接触CAS的一个入门指南,并演示一个CAS的最简单的实例 二.环境要求 博主的环境如下: win8.1 64 ...

  3. 【SSO单点系列】(4):CAS4.0 SERVER登录后用户信息的返回

    接着上一篇,在上一篇中我们描述了怎么在CAS SERVER登录页上添加验证码,并进行登录.一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户 ...

  4. 【SSO单点系列】(7):CAS4.0 SERVER通过数据库方式认证用户

    在前几篇中有简单介绍服务端的认证方式,默认的是直接在 deployerConfigContext.xml 文件中 一个叫做 primaryAuthenticationHandler 的bean中配置. ...

  5. 【SSO单点系列】(6):CAS4.0 单点流程序列图(中文版)以及相关术语解释(TGT、ST、PGT、PT、PGTIOU)

    CAS 相关的内容好久没写了,可能下周会继续更新一些内容吧. 在上一篇中的单点流程序列图由于是从官网直接下载来的,上面都是英文,可能有的朋友看不懂,因此修改成中文的. PS:只修改了一个,第二个图明天 ...

  6. 【SSO单点系列】(5):CAS4.0 单点流程序列图

    刚过元旦假期,感觉自己好久没写博客了,今天更新一篇,主要是CAS 的一个流程图. ps: 这两张图 是直接从官网上找的,都是简单的英语,我这种英语四级没过都看得懂,大家应该没有压力. 1.CAS 基本 ...

  7. 【SSO单点系列】开篇

    年底将至,忙碌了好几个月的项目也接近尾声了.在这个项目中,由于要和其他外系统做单点登录(SSO),整合其他系统的功能.在网上查询了相关资料后,最终选取了Yale大学发起的一个开源项目 CAS, 作为项 ...

  8. CAS—改动默认登录页

    1.  部署CAS-Server 本文以cas-server-3.4.11-release.zip为例.解压提取cas-server-3.4.11/modules/cas-server-webapp- ...

  9. cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)

    转:http://blog.csdn.net/ae6623/article/details/8861065 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标:    ...

随机推荐

  1. make:cc 命令未找到的解决方法

    安装redis时遇到的问题 make:cc 命令未找到的解决方法 没安装gcc,然后安装 yum install gcc yum install gcc-c++

  2. html5 调用摄像头

    ---移动设备--- <input type="file" capture="camera" accept="image/*" id= ...

  3. 【iCore3 双核心板】例程二十:LAN_TCPC实验——以太网数据传输

    实验指导书及代码包下载: http://pan.baidu.com/s/1pJY5uXH iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  4. Sharepoint 2013 user permissions(用户权限)

     Read: This permission level gives you read-only access to the website. Contribute:  In addition to ...

  5. P1941 飞扬的小鸟

    此题很容易写出方程,由以前的知识可以迁移得,本题可以用完全背包的方法进行优化,使用滚动数组即可得到答案. //莫名奇妙60分.不知道什么细节出了错. #include <bits/stdc++. ...

  6. C#编程之委托与事件四(一)【转】

    C#编程之委托与事件(一)     本文试图在.net Framework环境下,使用C#语言来描述委托.事件的概貌.希望本文能有助于大家理解委托.事件的概念,理解委托.事件的用途,理解它的C#实现方 ...

  7. vim - Highlight unwanted spaces

    http://vim.wikia.com/wiki/VimTip396 precondition: set hlsearch" Show all tabs:/\t" Show tr ...

  8. mysql中engine=innodb和engine=myisam的区别

    最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...

  9. leetcode105:Construct Binary Tree from Preorder and Inorder Traversal

    题目: Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume t ...

  10. Unity NGUI 资源下载

    https://www.assetstore.unity3d.com/cn/#!/content/2413 版本: 3.9.1 下载地址 密码:amtz