springboot 集成cas5.3 配置及管理JSON Service服务

叙述

服务管理(Service Management)就是CAS服务管理工具允许CAS服务器管理员声明和配置哪些服务(Service,CAS客户端)可以在哪些方面使用CAS。服务管理工具的核心组件是服务注册表,它存储一个或多个注册服务。
(作者叙述:简单来说,就是控制sso单点登录限制那个客户端使用cas认证中心进行认证)

推荐使用JSON进行服务管理,所以本文只针对JSON服务管理讲解,更多服务像jpa等等请巡查其他资料。

首先添加依赖包:

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-json-service-registry</artifactId>
    <version>${cas.version}</version>
</dependency>

在resources/services文件夹下面新建web-10000001.json,具体内容如下:

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps|http)://localhost:8090.*",
  "name" : "web",
  "id" : 10000001,
  "evaluationOrder" : 10
}

注意: Json文件名字规则为name-id.json,id必须为Json文件内容Json一致。

Json文件解释:

  • @class:必须为org.apereo.cas.services.RegisteredService的实现类,对其他属性进行一个json反射对象,常用的有RegexRegisteredService,匹配策略为id的正则表达式
  • serviceId:唯一的服务id
  • name: 服务名称,会显示在默认登录页
  • id:全局唯一标志
  • description:服务描述,会显示在默认登录页
  • evaluationOrder: 匹配争取时的执行循序,最好是比1大的数字

因为在CAS服务中,默认是提供了默认的Service配置项,所以如果添加的Json配置没起作用,可以尝试注释掉默认启动Json,在pom.xml文件里面进行配置,如下:
在这里插入图片描述
然后在配置文件application.properties下添加配置:

##
# Service Registry(服务注册)
#
# 开启识别Json文件,默认false
cas.serviceRegistry.initFromJson=true

#自动扫描服务配置,默认开启
#cas.serviceRegistry.watcherEnabled=true

#120秒扫描一遍
cas.serviceRegistry.schedule.repeatInterval=120000

#延迟15秒开启
# cas.serviceRegistry.schedule.startDelay=15000



##
# Json配置
cas.serviceRegistry.json.location=classpath:/services

我这块有5个服务
在这里插入图片描述

启动服务,我们可以发现注释掉war包下Json初始化后,默认只启动了5个Json,在控制台中我们可以发现启动日志:
在这里插入图片描述

如果没有注释话,默认会是加载了7个服务配置。

这里官方准备的客户端Demo是Java版本的,地址为:cas-sample-java-webapp

打开下载好的官方示例包

打开etc-jetty-jetty-ssl.xml文件,修改端口为8090
在这里插入图片描述
修改WEB-INF下的web.xml中的地址
在这里插入图片描述
底下也根据上面改成相应一样的地址
在这里插入图片描述
然后启动访问http://localhost:8090/
在这里插入图片描述
顺利的跳到登录页面了,
在这里插入图片描述
登录成功,服务可以访问了,如果换成其他客户端地址,会出现未认证授权的服务。
在这里插入图片描述
此时就能保证cas认证中心不被别的未知客户端接入了

猜你喜欢

转载自blog.csdn.net/u014641168/article/details/121120433