【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案

CAS6的源码提供了默认的HTTPSandIMAPS-10000001.json配置用于授权所有的https和imaps服务,但是当添加JsonServiceRegistry模块启动后,会发现service是没有被注册的,是由于json路径引起的错误,可以把路径修改为绝对路径以解决此问题。



问题描述

CAS默认采用json的方式去文件中读取服务的定义从而注册服务。但是需要添加cas-server-support-json-service-registry的依赖。

在源码构建的方式下,添加了依赖后,启动项目,依然会发现没有服务被注册,提示如下:

INFO [org.apereo.cas.services.AbstractServicesManager] - <Loaded [0] service(s) from [JsonServiceRegistry].>

常见的使用的配置如下(CAS6.6):

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

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

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

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

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

查看项目启动时候的日志,能够发现就是路径引起的问题:

 INFO [org.apereo.cas.services.resource.AbstractResourceBasedServiceRegistry] - <Watching service registry directory at [/Users/atfwus/open_proj/cas-6.6.x/webapp/cas-server-webapp-init/build/resources/main/services]>
 INFO [org.apereo.cas.util.io.PathWatcherService] - <Watching directory path at [/Users/atfwus/open_proj/cas-6.6.x/webapp/cas-server-webapp-init/build/resources/main/services]>

因为去init模块的build文件中找,会发现service相关配置根本不在这里面。所以我们需要更改路径。

问题调试

在类org.apereo.cas.configuration.model.support.services.json.JsonServiceRegistryProperties的父类SpringResourceProperties中,是相关资源的定义。

可以看到默认的路径:

在这里插入图片描述

查看SpringResourceProperties的注释可以发现:

在这里插入图片描述
是可以用绝对路径来表示资源的。

于是我们可以考虑使用绝对路径来表示出service目录的具体位置。

解决方案

将和location相关的配置修改为:(绝对路径的方式,指向cas-server-webapp模块的build文件中的资源文件)

cas.serviceRegistry.json.location=file:/Users/atfwus/open_proj/cas-6.6.x/webapp/cas-server-webapp/build/resources/bootRun/services

重启项目,看到如下提示就是服务配置加载成功:

在这里插入图片描述
在这里插入图片描述

总结:

  • cas默认使用service文件路径使用classpath相对路径的方式表示,但实际上存在问题,导致去init模块的build文件去找了,而不是去cas-server-webapp模块的build文件找。
  • 可以使用绝对路径的方式解决上述问题。

ATFWUS 2023-07-27

  • 26
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ATFWUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值