修改Cas overlay 7.1.3添加自定义RestController

问题描述 投票:0回答:1

我是 CAS 代码库的新手。

真的很感谢一些指点吗?

初始化的 cas 覆盖项目来自 https://apereo.github.io/cas/development/installation/WAR-Overlay-Initializr.html

我正在尝试使用注释@SpringBootApplication添加自己的类

https://github.com/apereo/cas-overlay-template/tree/master/src/main,以便它扫描我的包中的bean初始化和控制器类,以便我可以覆盖cas覆盖的功能。

https://github.com/apereo/cas-overlay-template/tree/master/src/main

我在这里修改了主入口类https://github.com/apereo/cas-overlay-template/blob/master/gradle/springboot.gradle#L81

我可以在日志中看到这一点

2025-01-18 08:48:11,371 调试 [org.springframework.boot.devtools.restart.Restarter] -

但是为什么它不扫描其他包裹。

我错过了什么吗

java spring-boot authentication spring-security cas
1个回答
0
投票

问题是在CAS版本7中,作者(据我所知悄悄地)决定禁用Spring对带注释组件的自动扫描/发现,可能是出于性能原因。相反,CAS 现在依赖于Spring 的组件索引器。尽管看起来它的所有组件仍然是通过 @Bean

 方法在 Java 中创建的,所以无论如何都不应该对 CAS 自己的组件进行组件扫描或索引。

来源:

CAS 7.0.0,如何扫描自己创建的bean,并由spring管理

因此,

解决方案要么像 CAS 那样创建您的组件(无论是RestController

还是其他组件),即在您自己的 Java Spring 配置类中(记录在
扩展 CAS 配置中)。

或者,尝试将组件类的名称放入项目中的

META-INF/spring.components

 文件中,您可能希望使用上面链接的 SO 页面中讨论的 Spring 索引器工具来实现自动化。该文件中一行的当前格式似乎类似于 
org.example.YourComponentClass=org.springframework.stereotype.Component
=
 符号后面的值通常可能不同)。

© www.soinside.com 2019 - 2024. All rights reserved.