diff --git a/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java b/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java index e99b21f2..8b7e7d05 100644 --- a/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java +++ b/modules/core/src/main/java/com/jeesite/modules/config/ShiroConfig.java @@ -16,9 +16,13 @@ import org.apache.shiro.spring.LifecycleBeanPostProcessor; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.web.filter.InvalidRequestFilter; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; import com.jeesite.common.collect.ListUtils; import com.jeesite.common.config.Global; @@ -49,6 +53,20 @@ import com.jeesite.common.shiro.web.WebSecurityManager; @Configuration(proxyBeanMethods = false) public class ShiroConfig { + /** + * Apache Shiro Filter + */ + @Bean + @Order(Ordered.HIGHEST_PRECEDENCE + 5000) + @ConditionalOnMissingBean(name="shiroFilterProxy") + public FilterRegistrationBean shiroFilterProxy(ShiroFilterFactoryBean shiroFilter) throws Exception { + FilterRegistrationBean bean = new FilterRegistrationBean<>(); + bean.setFilter((Filter) shiroFilter.getInstance()); + bean.addUrlPatterns("/*"); + bean.setOrder(Ordered.HIGHEST_PRECEDENCE + 5000); + return bean; + } + /** * 内部系统访问过滤器 */