0%

CAS教程

参考博文地址

https://github.com/X-rapido/CAS_SSO_Record
https://www.jianshu.com/nb/36971803

实践中的问题

版本

本人使用的是5.3.1版本

配置静态json客户单service问题

本人使用的版本是5.3.1,在simple-sso包下实践简单SSO登录在CAS服务端application.properties中静态配置service客户端时比没有设置静态json service的路径,
网上查找到如果不配置默认在resources/services下,但是如果不配置此参数在5.3.1版本中无法识别到客户端json配置,所以需要手动加上以下配置
cas.serviceRegistry.json.location=classpath:/services
博文中–Service 配置介绍中(http://www.ibloger.net/article/3122.html)给定的配置如下,但是将配置配成下面时,CAS 服务端无法开启

#cas.serviceRegistry.config.location=classpath:/services

如果不使用https的情况下在CAS服务端application.properties中关闭SSL,如果不关闭会导致无法跨域单点登录
1
2
3
4
server.ssl.enabled=false
#解决http下登录状态不互通,无法跨域问题
cas.tgc.secure=false
cas.warningCookie.secure=false
解决http下代理模式无法回调成功

在http模式下代理模式调用代理端回调函数时会报

1
org.jasig.cas.client.validation.TicketValidationException: 所提供的代理回调网址'https://xxxx'不能提供认证。

这是因为CAS默认代理回调函数只支持https
我们需要在CAS服务端中的service注册json文件中添加proxyPolicy属性来增加对http的支持

1
2
3
4
5
6
7
8
9
10
11
12
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|http|imaps)://.*",
"name" : "HTTPS and HTTP and IMAPS",
"id" : 10000001,
"description" : "This service definition authorizes all application urls that support HTTPS and HTTP and IMAPS protocols.",
"evaluationOrder" : 10000,
"proxyPolicy": {
"@class": "org.apereo.cas.services.RegexMatchingRegisteredServiceProxyPolicy",
"pattern": "^(https|http)?://.*"
}
}