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

这篇具有很好参考价值的文章主要介绍了【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中,是相关资源的定义。

可以看到默认的路径:

【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案,cas最佳实践,cas,cas源码构建,cas源码分析,cas服务管理,cas服务配置不生效

查看SpringResourceProperties的注释可以发现:

【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案,cas最佳实践,cas,cas源码构建,cas源码分析,cas服务管理,cas服务配置不生效
是可以用绝对路径来表示资源的。

于是我们可以考虑使用绝对路径来表示出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

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

【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案,cas最佳实践,cas,cas源码构建,cas源码分析,cas服务管理,cas服务配置不生效
【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案,cas最佳实践,cas,cas源码构建,cas源码分析,cas服务管理,cas服务配置不生效

总结:

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

ATFWUS 2023-07-27文章来源地址https://www.toymoban.com/news/detail-612126.html

到了这里,关于【CAS6.6源码解析】源码构建时-默认service配置不生效解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CAS之AtomicReference原理解析

    如果你了解了AtomicInteger的工作原理,或者看了如下文章,知道了AtomicInteger只能对当个int类型共享变量做cas的缺点。 CAS之AtomicInteger原理解析_z275598733的博客-CSDN博客 那么AtomicReference就是来解决这个问题的。原理很类似,只是AtomicReference是对对象做cas操作。从一段AtomicReference类

    2024年02月14日
    浏览(29)
  • Ubuntu 服务器通过 resolvconf 管理配置系统默认DNS解析服务器配置文件

    1、首先安装 resolvconf 如果未安装 2、检查已启动并启用的解析服务 3、如果未启用服务,则可以通过以下方式启动和启用它:  4、现在编辑 resolv.conf.d/head 配置文件 5、将您的 DNS 地址添加到此文件中,例如我使用(223.5.5.5 和 223.6.6.6)  6、现在强制 resolvevconf 在使用 -u 调用时

    2024年02月11日
    浏览(46)
  • 【Java 并发编程】CAS 原理解析

    悲观锁 的原理是每次实现数据库的增删改的时候都进⾏阻塞,防⽌数据发⽣脏读。 乐观锁 的原理是在数据库更新的时候,⽤⼀个 version 字段来记录版本号,然后通过⽐较是不是⾃⼰要修改的版本号再进⾏修改。这其中就引出了⼀种⽐较交换的思路来实现数据的⼀致性,事实

    2024年02月06日
    浏览(38)
  • Dubbo源码解析第一期:如何使用Netty4构建RPC

            早期学习和使用Dubbo的时候(那时候Dubbo还没成为Apache顶级项目),写过一些源码解读,但随着Dubbo发生了翻天覆地的变化,那些文章早已过时,所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解”,希望和大家一起再探Dubbo的实现。由于能力有限,如果文章

    2024年01月21日
    浏览(35)
  • [RocketMQ] Broker CommitLogDispatcher 异步构建ConsumeQueue和IndexFile源码解析 (十四)

    CommitLogDispatcherBuildConsumeQueue: 异步构建ConsumerQueue。 CommitLogDispatcherBuildIndex: 异步构建IndexFile。 1.CommitLogDispatcherBuildConsumeQueue构建ConsumeQueue CommitLogDispatcherBuildConsumeQueue用于接收分发请求并构建ConsumeQueue。 对于非事务消息或者是事务commit消息, 调用DefaultMessageStore#putMessagePositionI

    2024年02月17日
    浏览(41)
  • MyBatis SqlSession事务与批量执行正确方式(默认不生效)

    某些情况下会使用MyBatis的SqlSessionFactory.openSession()方法获取SqlSession对象,再进行数据库操作,但默认情况下SqlSession的事务与批量执行均不生效,假如希望使用SqlSession时事务或批量执行能够生效,则需要进行额外的处理 调用org.apache.ibatis.session.SqlSessionFactory接口的以下openSess

    2024年02月09日
    浏览(44)
  • Win11 word文件(.docx)默认打开方式设置不生效解决办法

            前几天打开word文件的时候突然提示我选择打开方式, 勾选了始终使用此应用打开.docx文件后点确定确实能进去了, 但是下次打开word文件再次弹出了这个, 当时我以为重启一下电脑应该就好了, 结果重启后还是这样, 我意识到了问题的严重性, 开始求助度娘, 网上找了各种

    2024年02月04日
    浏览(68)
  • 【微信小程序】工具构建npm不生效问题

    直接终端输入 npm init -y npm install express 会重新初始化package.json和重新刷新node_modules包 然后直接点npm构建 构建出来这个就完事了

    2024年02月02日
    浏览(38)
  • 【SpringBoot】SpringBoot的自动配置源码解析

    SpringBoot相对于SSM来说,主要的优点就是简化了配置,不再需要像SSM哪有写一堆的XML配置,这些XML配置在大项目上会成为一种累赘,使得后期项目难以维护。 SpringBoot的出现,使得开发者不再关注于配置,能够更加专注于业务的开发,这得益于SpringBoot的自动配置。 SpringBoot的自

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包