美文网首页
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