专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 信息/网络安全

解决自定义Shiro.Realm扩展类不能用注解(@Resource或@Autowire)自动装配的有关问题

发布时间:2011-07-03 06:59:45 文章来源:www.iduyao.cn 采编人员:星星草
解决自定义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);
    }
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: