CAS5.2x单点登录(五)-----service服务的讲解

在cas中存在一个叫service的东西,这个service和我们平常说的不是一个东西,这个service是指cas客户端接入。只有经过cas允许的客户端才能使用cas,也就相当于我们的客户端要使用cas的前提是必须要先在cas里面注册自己的信息。这个信息就是所谓的service。 
cas里面有好多方式存储这个service,比如下面的这些: 
1、JSON(通过json文件存储) 
2、LDAP 
3、InMemory 通过bean在内存存储 
4、JPA数据库存储 
5、yml文件存储 
6、mogodb存储 
我们开始默认使用的是json,可能眼尖的人会发现我们放在tomcat里面运行的时候,在文件夹web-inf的classes文件夹下有个services的文件夹。也就是下图的这样 
这里写图片描述 
这个文件夹里面存的就是开始默认的json文件 
这里写图片描述 
他的命名方式也是有讲究的,不是随便命名的,我们先将一下这个文件里面的构造,其实所有存储的方式其实是一样的,本质都是这些key、value的设置。我们先讲一下service文件的构造,我们直接以第二个htpsandimaps这个文件来讲,打开文件后是这样的文件结构: 
这里写图片描述


这里我们可以发现一个文件名的特点,他就是我们的name+-+id来命名的,记住文件名的id一定要和里面的id保持一致。 
看这个结构我们可以发现第一行的@class这个是通用的,所有的这种都是用这个来的,代表注册服务的意思。


第二行的serviceId代表的是我们注册的客户端的地址,这里可以使用正则匹配,这个可是重中之重,因为你的客户端能不能使用其实就是靠这种文件里面的这个字段是不是能匹配上你的客户端的url,我们这边匹配的是以https或者imaps开头的所有地址。如果你的cas客户端的地址是以http开头的,而你没有去改这个配置文件,那么很不好意思,你去进行单点登录的时候,cas会提示你这个是未认证的服务。


还有个第三行的name代表的是其实就是一个名称而已,之后会显示在你的登录页面上,如果你不重新改cas的页面的话。这个也是必须填写的。


第四行的id,这个应该不用我说吧,这个其实代表的唯一性,相当于我们的主键,(可以这么理解)。


第5行表示的是描述,这个见名之意,其实就是描述你这个文件主要是用来做什么的,主要用于之后维护的时候告诉你这个文件的作用,因为一旦文件多的时候,有注释会让你更方便的找到一些东西。


第6行的evaluationOrder其实代表的就是执行的顺序ps(也不算吧),只能想当与spring中的@order的注解吧。 
这个是基本的一个service的文件,其实里面有更多的东西,比如返回的属性、登出的方式以及登出的地址,等等。甚至还有关于oauth2等的配置信息,其实都可以写在这个配置文件中,还有一个比较重要的属性就是返回数据属性的设置

“` 
“attributeReleasePolicy” : { 
“@class” : “org.apereo.cas.services.ReturnAllAttributeReleasePolicy” 
}


这个其实有好几种返回属性的方式,我这边使用的是返回所有的,就是相当于你自己在登录成功后塞进map里面的属性都能使用这个让cas客户端接收到,记住cas客户端要使用cas3进行接收啊。 
好了大致的service的配置我们也讲了,但是我们如何去读取他呢,这时候cas提供的一种读取的方式就上场了 
在cas的properties配置文件中首先要打开这个配置

cas.serviceRegistry.initFromJson=true//这个代表的是运行读取json配置文件 
cas.serviceRegistry.watcherEnabled=true//这个代表的是自动扫描,默认是开启的 
cas.serviceRegistry.repeatInterval=120000//代表的是多久扫描一次 
cas.serviceRegistry.startDelay=15000//延迟15秒开启 
cas.serviceRegistry.config.location=classpath:/services 
//这个代表的是我们放置的services的路径

配置好上面的这些,我们的cas就能开始运行了。因为他能扫描到我们注册的服务,即使你在某个时刻更改了,虽然不是马上生效,但是两分钟后他就能生效,因为他在两分钟后就会进行重新扫描这些json文件

猜你喜欢

转载自blog.csdn.net/gdsgdh308227363/article/details/80445580