diff --git a/src/main/java/io/jboot/app/JbootApplication.java b/src/main/java/io/jboot/app/JbootApplication.java index ec8867211d155dc285d6b42ebfdee2505c9bf156..40e1d3fe661da73576c7bc3dac3870306295139d 100644 --- a/src/main/java/io/jboot/app/JbootApplication.java +++ b/src/main/java/io/jboot/app/JbootApplication.java @@ -21,6 +21,7 @@ import com.jfinal.server.undertow.WebBuilder; import io.jboot.app.config.JbootConfigManager; import io.jboot.app.undertow.JbootUndertowConfig; import io.jboot.app.undertow.JbootUndertowServer; +import io.jboot.utils.StrUtil; import javax.servlet.DispatcherType; @@ -130,8 +131,11 @@ public class JbootApplication { if (urlMapping == null) { urlMapping = "/*"; } + String filterClass = StrUtil.defaultIfBlank(ApplicationUtil.getConfigValue("jboot.shiro.filter"), + "io.jboot.support.shiro.JbootShiroFilter"); + webBuilder.addListener("org.apache.shiro.web.env.EnvironmentLoaderListener"); - webBuilder.addFilter("shiro", "io.jboot.support.shiro.JbootShiroFilter") + webBuilder.addFilter("shiro", filterClass) .addFilterUrlMapping("shiro", urlMapping, DispatcherType.REQUEST); webBuilder.getDeploymentInfo().addInitParameter("shiroEnvironmentClass", "io.jboot.support.shiro.JbootShiroWebEnvironment"); diff --git a/src/main/java/io/jboot/support/shiro/JbootShiroConfig.java b/src/main/java/io/jboot/support/shiro/JbootShiroConfig.java index 102f882d6bb2043b49d16936dcacb70c333c673b..b0002a381b4d5f9ad70f64db45cc8d68c2b8f866 100644 --- a/src/main/java/io/jboot/support/shiro/JbootShiroConfig.java +++ b/src/main/java/io/jboot/support/shiro/JbootShiroConfig.java @@ -27,6 +27,7 @@ public class JbootShiroConfig { private String urlMapping = "/*"; private String invokeListener; + private String filter = "io.jboot.support.shiro.JbootShiroFilter"; public String getLoginUrl() { return loginUrl; @@ -79,6 +80,14 @@ public class JbootShiroConfig { public boolean isConfigOK() { return ini != null; } + + public String getFilter() { + return filter; + } + + public void setFilter(String filter) { + this.filter = filter; + } }