1.今日总结
今天主要是做一个集成CAS单点登录的demo。
2.问题总结
- Q1:首先去官网查看,如何在CAS的server中集成要单点登录的APP,官网说明在resource的services目录下,创建规则。依据官网的例子:
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps|http)://.*",
"name" : "HTTPS and IMAPS",
"id" : 10000001,
"description" : "第一个应用",
"evaluationOrder" : 1,
"attributeReleasePolicy" : {
"@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
}
}
其中serviceId是对App的过滤,即以这几种方式进行访问的都会注册到CAS的server中。结果重启后,发现还是不能进行单点登录。查询官网后发现单点服务是没有开启的:
要想使用单点登录还需要进行配置
"accessStrategy" : {
"@class" : "org.jasig.cas.services.DefaultRegisteredServiceAccessStrategy",
"enabled" : true,
"ssoEnabled" : true
},
这样就可以使用单点登录了。
- 反思
没有仔细去查看官方文档中的配置。 - Q2:如何去获取数据库中的所有配置
cas.authn.attributeRepository.jdbc[0].sql=select * from users where userName=?
cas.authn.attributeRepository.jdbc[0].singleRow=true
cas.authn.attributeRepository.jdbc[0].username=userName
cas.authn.attributeRepository.jdbc[0].url=jdbc:mysql://mysql:3306/BronzeSword?useUnicode=yes&characterEncoding=UTF-8
cas.authn.attributeRepository.jdbc[0].batchSize=1
cas.authn.attributeRepository.jdbc[0].user=BronzeSword
cas.authn.attributeRepository.jdbc[0].password=password
cas.authn.attributeRepository.jdbc[0].healthQuery=SELECT 1
cas.authn.attributeRepository.jdbc[0].driverClass=com.mysql.jdbc.Driver
cas.authn.attributeRepository.jdbc[0].dialect=org.hibernate.dialect.MySQLDialect
同时还要注意:
#取消以下两行则在返回属性中仅包含表中的这两个字段属性,注释情况下返回该表行所有属性
#cas.authn.attributeRepository.jdbc[0].attributes.id=id
#cas.authn.attributeRepository.jdbc[0].attributes.name=name
3.Action
- 1 .通过今天做这个小demo,发现自己对于web开发的相关知识,有很多陌生的概念,在这方面需要加强。
- 2.在遇到一个陌生的技术时,应该多看官方文档,多做实验。