[ https://issues.apache.org/jira/browse/SHIRO-829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17392235#comment-17392235 ]
Francois Papon commented on SHIRO-829: -------------------------------------- Hi [~xcz] can you write in english please? > LifecycleBeanPostProcessor和ShiroFilterFactoryBean在同一个Configuration中导致aop失效 > -------------------------------------------------------------------------- > > Key: SHIRO-829 > URL: https://issues.apache.org/jira/browse/SHIRO-829 > Project: Shiro > Issue Type: Bug > Components: Integration: Spring > Affects Versions: 1.7.1 > Environment: springboot:1.5.21.RELEASE > spring:4.3.24.RELEASE > Reporter: chenzhi.xu > Assignee: Les Hazlewood > Priority: Major > Attachments: image-2021-08-03-18-24-02-370.png > > > LifecycleBeanPostProcessor和ShiroFilterFactoryBean在同一个Configuration类中定义时导致Realm依赖的单例aop失效(事务和cache)。 > 原因是org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#getTypeForFactoryBean > !image-2021-08-03-18-24-02-370.png! > 图中1处希望解析FactoryBean的返回类型,当无法根据签名解析时进入2逻辑,因为LifecycleBeanPostProcessor提前初始化导致Configuration类被作为FactoryBean已经存在,导致继续执行实例化。导致依赖提前于其他BeanPostProcessor实例化。 > 解决办法也很简单,将ShiroFilterFactoryBean的签名改为 > *public class ShiroFilterFactoryBean implements > FactoryBean<AbstractShiroFilter>, BeanPostProcessor* -- This message was sent by Atlassian Jira (v8.3.4#803005)