技术成就梦想

原 Dubbo在Shiro的自定义realm中注入失败的解决方案 scott0923



最近公司项目中用到的微服务,技术使用springboot+dubbo的方案,权限使用Shiro,当在shiro的自定义realm中注入dubbo服务的时候发现一直是null,究其原因发现只要你给filter配置了securityManager就会导致dubbo的service无法注入,项目中使用的是注解的形式,解决方案是把需要注入的服务使用配置文件的形式进行配置,代码如下

 <dubbo:reference id="userDubboService"  
        interface="com.pactera.biz.dubbo.service.UserService" check="false" version="1.0.0" timeout="6000"/>
        <dubbo:reference id="roleService"  
        interface="com.pactera.biz.dubbo.service.RoleService" check="false" version="1.0.0" timeout="6000"/>
        <dubbo:reference id="organizationService"  
        interface="com.pactera.biz.dubbo.service.OrganizationService" check="false" version="1.0.0" timeout="6000"/>

庆幸的是dubbo服务可以以注解和配置文件的形式同时存在,其余地方依然可以使用@Reference(version=”1.0″)的注解形式。