美文网首页
Springboot Shiro集成CAS5 处理读取不到@Va

Springboot Shiro集成CAS5 处理读取不到@Va

作者: 一直在想我是谁 | 来源:发表于2020-07-08 18:55 被阅读0次

    背景:使用springboot shiro的框架,集成CAS时,配置类通过@Value获取不到配置数据

    问题查了比较久,最后确认下来是由于shiro的生命周期管理配置造成的,具体解决方法如下:

    1、将lifecycleBeanPostProcessor设置为static,必须设置为static,否则读取变量不会生效

     @Bean(name = "lifecycleBeanPostProcessor")
        public static LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() {
            return new LifecycleBeanPostProcessor();
        }
    

    2、设置CAS相关的属性变量,此部分变量需要给其他的类调用可使用static,如若只是本类使用可不添加。

        CasUtils配置类中的属性片段
    
        //cas服务器地址
        private static String casServerUrlPrefix;
        //本客户端对外提供的访问地址
        private static String clientHostUrl;
        ...其他属性略
    
        @Value("${cas.server-url-prefix}")
        public void setCasServerUrlPrefix(String casServerUrlPrefix){
            ShiroCasConfiguration.casServerUrlPrefix = casServerUrlPrefix;
        }
    
        @Value("${cas.client-host-url}")
        public void setClientHostUrl(String clientHostUrl){
            ShiroCasConfiguration.clientHostUrl= clientHostUrl;
        }
    
    #application.yml中的cas相关配置
    cas:
      server-url-prefix: http://192.168.0.100:8080/cas
      client-host-url: http://192.168.0.101:8080
      #其他属性略
    
    以上配置能解决shiro环境下调用cas无法读取系统配置变量的问题,及使用shiro框架不能读取正常系统变量的情况。

    相关文章

      网友评论

          本文标题:Springboot Shiro集成CAS5 处理读取不到@Va

          本文链接:https://www.haomeiwen.com/subject/lsfhcktx.html