irpas技术客

SpringBoot 集成cas5.3 配置及管理JSON Service服务_springboot cas 配置_张童瑶

未知 1106

叙述

服务管理(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:唯一的服务idname: 服务名称,会显示在默认登录页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认证中心不被别的未知客户端接入了


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #springboot #cas #配置 #叙述服务管理Service