zoukankan      html  css  js  c++  java
  • 解决自定义Shiro.Realm扩展类不能用注解(@Resource或@Autowire)自动装配的问题

    问题产生原因:加载Realm时其他Spring配置文件(xml)尚未加载,导致注入失败。

    解决方法:编写一个设置类把注入工作提前完成。

    package com.xkt.shiro
    
    import org.apache.shiro.realm.Realm;
    import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * 把securityManager和userRealm装配到ApplicationContext
     */
    @Configuration
    public class ShiroConfig implements ApplicationContextAware {
    
        @Override
        public void setApplicationContext(ApplicationContext ac) throws BeansException {
            Realm userRealm = (Realm) ac.getBean("userRealm");
            DefaultWebSecurityManager defaultWebSecurityManager = (DefaultWebSecurityManager) ac.getBean("securityManager");
            defaultWebSecurityManager.setRealm(userRealm);
        }
    }
  • 相关阅读:
    组合数学练习
    floyd算法新理解
    图论练习
    GDOI2021 day2总结
    P3190 [HNOI2007]神奇游乐园
    P1932 A+B A-B A*B A/B A%B Problem
    P2289 [HNOI2004]邮递员
    P5056 【模板】插头dp
    P4323 [JSOI2016]独特的树叶
    CF1153D Serval and Rooted Tree
  • 原文地址:https://www.cnblogs.com/gugia/p/5261524.html
Copyright © 2011-2022 走看看