2017.8.23(CAS整合多个APP)

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中。结果重启后,发现还是不能进行单点登录。查询官网后发现单点服务是没有开启的:

2017.8.23(CAS整合多个APP)_第1张图片
图片.png

要想使用单点登录还需要进行配置

  "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.在遇到一个陌生的技术时,应该多看官方文档,多做实验。

你可能感兴趣的:(2017.8.23(CAS整合多个APP))