单点登录 - 修改CAS服务器的一些配置( 陆续添加)
2019独角兽企业重金招聘Python工程师标准>>>
注意:本系列采用的CAS版本是4.1.xx,其它版本有可能不适用。
1、啰嗦一下原理
在spring中,读取属性文件properties替换占位符可以使用 PropertySourcesPlaceholderConfigurer 或 PropertyPlaceholderConfigurer 两个类,它们的父类 PropertyResourceConfigurer 实现了 BeanFactoryPostProcessor接口,该接口的postProcessBeanFactory方法在spring容器初始化时,将会在注册BeanDefinition后调用,提供了一种动态修改BeanDefinition的属性的方法。BeanDefinition就是对xml文件中,bean定义的封装。 PropertySourcesPlaceholderConfigurer 或 PropertyPlaceholderConfigurer 两个类将会动态替换占位符${}。
cas-server-webapp工程在web.xml中提供了spring的配置文件加载位置
<init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/cas-servlet.xml, /WEB-INF/cas-servlet-*.xml</param-value></init-param>
看一下WEB-INF/cas-servlet.xml文件,这里引入了其它的配置文件 propertyFileConfigurer.xml
<import resource="spring-configuration/propertyFileConfigurer.xml"/>
看一下 propertyFileConfigurer.xml,这里给出了配置文件的引入地址
<util:properties id="casProperties" location="${cas.properties.filepath:/WEB-INF/cas.properties}"/><context:property-placeholder properties-ref="casProperties"/>
我们可以知道,/WEB-INF/cas.properties就是cas的属性文件。
2、修改配置
2.1 修改默认语言
cas使用了spring mvc的国际化解决方案,即使用了LocaleResolver解析器解析消息,它的配置在/WEB-INF/cas-servlet.xml文件中。p:defaultLocale指定了默认的语言,这里使用了占位符${locale.default},然后在cas.properties文件中添加了需要使用的国际化语言文件解析消息。
<!-- Locale Resolver --><bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"p:defaultLocale="${locale.default}" />
${locale.default}需要在cas.properties文件中添加
# 默认语言
locale.default=zh_CN
清单:修改前的登录页
清单:修改后的登录页
2.2 修改默认登录页
请参考 文章《单点登录 - 定制CAS服务器的登录页》 https://my.oschina.net/thinwonton/blog/1417879
2.3 支持HTTP协议
为了支持客户端HTTP协议,需要修改下面4处地方:
(1)修改WEB-INF/deployerConfigContext.xml
<!-- Required for proxy ticket mechanism. --><bean id="proxyAuthenticationHandler"class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"p:httpClient-ref="supportsTrustStoreSslSocketFactoryHttpClient" p:requireSecure="false" /><!-- Required for proxy ticket mechanism. --><bean id="proxyAuthenticationHandler"class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"p:httpClient-ref="supportsTrustStoreSslSocketFactoryHttpClient" p:requireSecure="false" />
(2)修改WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"c:casCookieValueManager-ref="cookieValueManager"p:cookieSecure="false"p:cookieMaxAge="-1"p:cookieName="TGC"p:cookiePath=""/>
将p:cookieSecure="true"修改为p:cookieSecure="false"
(3)修改WEB-INF/spring-configuration/warnCookieGenerator.xml
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"p:cookieHttpOnly="true"p:cookieSecure="false"p:cookieMaxAge="-1"p:cookieName="CASPRIVACY"p:cookiePath=""/>
将p:cookieSecure="true"修改为p:cookieSecure="false"
(4)修改注册服务WEB-INF/classes/services/HTTPSandIMAPS-10000001.json
"serviceId" : "^(https|imaps)://.*" 修改为
{"@class" : "org.jasig.cas.services.RegexRegisteredService","serviceId" : "^(https|imaps|http)://.(jd.edu|taobao.edu)","name" : "HTTPS and IMAPS","id" : 10000001,"description" : "This service definition authorized all application urls that support HTTPS and IMAPS protocols.","proxyPolicy" : {"@class" : "org.jasig.cas.services.RefuseRegisteredServiceProxyPolicy"}
serviceId 这个属性很重要,它限制了可以访问CAS服务器的URL地址,在生产环境中建议配置下具体支持哪些服务。
转载于:https://my.oschina.net/thinwonton/blog/1417824
单点登录 - 修改CAS服务器的一些配置( 陆续添加)相关推荐
- cas java单点登录_java单点登录系统CAS的简单使用
http://blog.csdn.net/yunye114105/article/details/7997041 参考: http://blog.csdn.net/diyagea/article/de ...
- 开源单点登录系统CAS入门
单点登录系统CAS 目录 单点登录系统CAS 什么是单点登录? CAS 介绍 CAS 服务端部署 (1)复制war包到tomcat (2)运行tomcat (3)访问CAS登录页面 CAS服务端配置 ...
- 开源的单点登录系统CAS入门
单点登录 单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 当一 ...
- 单点登录之CAS原理和实现
1.开源单点登录系统CAS入门 1.1 什么是单点登录 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要 ...
- Jeesite单点登录集成Cas另加自定义登录验证
Jeesite单点登录集成Cas另加自定义登录验证 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的 开源 Java EE快速开发平台. Cas主要是用来解决多应用之 ...
- 单点登录解决方案CAS
#单点登录解决方案CAS ##一.单点登录 单点登录SSO,实现跨域登录.当用户第一次访问系统的时候,会被引导进入认证系统中进行登录:根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应 ...
- 单点登录之CAS原理和实现(转载)
转载源:https://www.jianshu.com/p/613c615b7ef1 单点登录之CAS原理和实现 来源于作者刘欣的<码农翻身> + 自己的备注理解 这家集团公司财大气粗,竟 ...
- cas单点登录系统:客户端(client)详细配置(包含统一单点注销配置)
最近一直在研究cas登录中心这一块的应用,分享一下记录的一些笔记和心得.后面会把cas-server端的配置和重构,另外还有这几天再搞nginx+cas的https反向代理配置,以及cas的证书相关的 ...
- Cas单点登录的服务器端和客户端的配置
同事参考网上资料总结出的Cas单点登录的文档,很有学习价值哦 Cas服务器端和客户端的配置 服务器端的配置: 1. 所需的环境: · Tomcat7.2 · JDK6 · CAS Service 版本 ...
最新文章
- 【经典书单】NLP秘笈汇总,从入门到进阶
- JavaScript onerror事件
- Html图片懒加载动画,Intersection Observer实现滚动到相应区域执行动画及图片懒加载...
- 观察者模式在SAP ui5修改theme实现中的应用
- 稀疏矩阵的压缩存储--十字链表(转载)
- xml没有提示解决办法eclipse
- VUE中axios 报错 TypeError: Cannot set property ‘type‘ of undefined,
- STM8 ADC转换模式-------单次模式
- 音乐搜索器 多站合一_分享一堆可以免费听音乐的良心网站!赶紧码住哦
- 重置gitlab管理员密码
- NUC1158 Lake Counting【DFS】
- 丰县哪里有学计算机,江苏丰县中等专业学校2021年有哪些专业
- 使用python来完成对QQ邮箱文件中转站的文件下载链接的获取
- 51单片机的定时器TMOD的小记
- Maven使用 | 多模块下的打包问题
- 计算机软硬件配置在哪里查,如何查看电脑硬件配置信息?
- 这10本豆瓣高分经典数学书,果断收藏!
- vue3 动态获取屏幕尺寸
- 怎么将小程序添加到我的小程序?
- 2022华为机试社招OD高频考试真题【9, 10月份Q2, Q3考试新编程题目】
热门文章
- 基于SSVEP-EOG的混合BCI用于机械臂控制
- [unreal4入门系列之十六] UE4中的集合:TSet容器
- 2021 IEEE热门AI话题盘点:模仿生物大脑打造神经网络、GPT3“不当言论”惹关注…...
- AMD猛攻数据中心市场,拿下15年来最高份额,英特尔DCG收入下滑20%
- “金星生命论”乌龙事件新进展:那只是二氧化硫而已
- 地平线新征程!官网焕然一新,二代自动驾驶芯片势已蓄,只待发
- 李开复从不缺席的AI夏令营开营:今年周志华俞勇张潼授课,1万人报名仅600入选...
- 数据传输流程和socket简单操作
- Sublime Text 2 和 Verilog HDL
- 17个提升iOS开发效率的神器