1.今日總結(jié)
今天主要是做一個(gè)集成CAS單點(diǎn)登錄的demo岭粤。
2.問題總結(jié)
- Q1:首先去官網(wǎng)查看,如何在CAS的server中集成要單點(diǎn)登錄的APP,官網(wǎng)說明在resource的services目錄下,創(chuàng)建規(guī)則。依據(jù)官網(wǎng)的例子:
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps|http)://.*",
"name" : "HTTPS and IMAPS",
"id" : 10000001,
"description" : "第一個(gè)應(yīng)用",
"evaluationOrder" : 1,
"attributeReleasePolicy" : {
"@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
}
}
其中serviceId是對(duì)App的過濾矾睦,即以這幾種方式進(jìn)行訪問的都會(huì)注冊(cè)到CAS的server中。結(jié)果重啟后颓芭,發(fā)現(xiàn)還是不能進(jìn)行單點(diǎn)登錄顷锰。查詢官網(wǎng)后發(fā)現(xiàn)單點(diǎn)服務(wù)是沒有開啟的:
圖片.png
要想使用單點(diǎn)登錄還需要進(jìn)行配置
"accessStrategy" : {
"@class" : "org.jasig.cas.services.DefaultRegisteredServiceAccessStrategy",
"enabled" : true,
"ssoEnabled" : true
},
這樣就可以使用單點(diǎn)登錄了。
- 反思
沒有仔細(xì)去查看官方文檔中的配置亡问。 - Q2:如何去獲取數(shù)據(jù)庫中的所有配置
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
同時(shí)還要注意:
#取消以下兩行則在返回屬性中僅包含表中的這兩個(gè)字段屬性官紫,注釋情況下返回該表行所有屬性
#cas.authn.attributeRepository.jdbc[0].attributes.id=id
#cas.authn.attributeRepository.jdbc[0].attributes.name=name
3.Action
- 1 .通過今天做這個(gè)小demo肛宋,發(fā)現(xiàn)自己對(duì)于web開發(fā)的相關(guān)知識(shí),有很多陌生的概念束世,在這方面需要加強(qiáng)酝陈。
- 2.在遇到一個(gè)陌生的技術(shù)時(shí),應(yīng)該多看官方文檔毁涉,多做實(shí)驗(yàn)沉帮。