当有隐患的时候,一定要及时剔除,一定会爆的,墨菲定律
鉴权服务里有shiro服务。
之前shiro让去除,因为波神那边也用了,所以当时没有去除,结果22年9月份迭代的时候shiro就爆了,管理员权限上不去了,一个劲儿让重新登录,当晚就把shiro的相关权限都扩大到最大化。当晚的问题解决了。
结果23年3月份有个需求,让引入客服应用的token鉴权体系。当我把pom文件引入之后就报错:
***************************
APPLICATION FAILED TO START
***************************
Description:
The bean 'certClientTokenServices' could not be injected as a 'org.springframework.security.oauth2.provider.token.DefaultTokenServices' because it is a JDK dynamic proxy that implements:
org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices
org.springframework.security.oauth2.provider.token.ResourceServerTokenServices
org.springframework.security.oauth2.provider.token.ConsumerTokenServices
org.springframework.beans.factory.InitializingBean
Action:
Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies by setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching.
我以为就是动态代理的事儿,结果整了一宿,从晚上5点整到快12点。后来把springboot都升级了,也不好使,就是提示cglib不好使。我都绝望了。
第二天亮哥把我项目考过去,运行了一下。半个小时就帮我找到了问题,shiro整合的事儿。他都给注释掉了就好使了。我当时也正在构建,想试一下把shiro全去掉行不行。果然好使了。
亮哥分析可能是包引入和之前的冲突了,导致引用了老的代理。多数是冲突的事儿。
哎,有风险的事儿,就一定会发生。墨菲定律。