diff --git a/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/src/main/java/com/stylefeng/guns/config/web/WebConfig.java index d36024078f094b6ff3f4388ee221a300b198ccf2..0df42ac5158a3547ce90b0d66e7e4273ffabaad1 100644 --- a/src/main/java/com/stylefeng/guns/config/web/WebConfig.java +++ b/src/main/java/com/stylefeng/guns/config/web/WebConfig.java @@ -2,6 +2,7 @@ package com.stylefeng.guns.config.web; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; +import com.alibaba.druid.support.http.WebStatFilter; import com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator; import com.alibaba.druid.support.spring.stat.DruidStatInterceptor; import com.google.code.kaptcha.impl.DefaultKaptcha; @@ -9,6 +10,9 @@ import com.google.code.kaptcha.util.Config; import com.stylefeng.guns.core.intercept.SessionInterceptor; import com.stylefeng.guns.core.listener.ConfigListener; import com.stylefeng.guns.core.util.xss.XssFilter; +import org.springframework.aop.Advisor; +import org.springframework.aop.support.DefaultPointcutAdvisor; +import org.springframework.aop.support.JdkRegexpMethodPointcut; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; @@ -37,6 +41,23 @@ public class WebConfig { return registration; } + /** + * druid监控 配置URI拦截策略 + * @return + */ + @Bean + public FilterRegistrationBean druidStatFilter(){ + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); + //添加过滤规则. + filterRegistrationBean.addUrlPatterns("/*"); + //添加不需要忽略的格式信息. + filterRegistrationBean.addInitParameter( + "exclusions","/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*"); + //用于session监控页面的用户名显示 需要登录后主动将username注入到session里 + filterRegistrationBean.addInitParameter("principalSessionName","username"); + return filterRegistrationBean; + } + /** * druid数据库连接池监控 */ @@ -45,6 +66,16 @@ public class WebConfig { return new DruidStatInterceptor(); } + + @Bean + public JdkRegexpMethodPointcut druidStatPointcut(){ + JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut(); + String patterns = "com.stylefeng.guns.modular.*.service.*"; + //可以set多个 + druidStatPointcut.setPatterns(patterns); + return druidStatPointcut; + } + /** * druid数据库连接池监控 */ @@ -56,6 +87,15 @@ public class WebConfig { return beanTypeAutoProxyCreator; } + /** + * druid 为druidStatPointcut添加拦截 + * @return + */ + @Bean + public Advisor druidStatAdvisor() { + return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor()); + } + /** * xssFilter注册 */ diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java index dd4b11d0b073836b20e056a420b67dbc9f99e939..21c4dbeecd7074bbe350ee6adb2ebc895607247c 100644 --- a/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java +++ b/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java @@ -97,6 +97,7 @@ public class LoginController extends BaseController { ShiroUser shiroUser = ShiroKit.getUser(); super.getSession().setAttribute("shiroUser", shiroUser); + super.getSession().setAttribute("username", shiroUser.getAccount()); LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5c938fc7094dc7a59aa161c3cf7b2b31aa4980dc..254b5735f7f235d12cff48434ad84b85ec9c05b3 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -58,6 +58,7 @@ spring: url: jdbc:mysql://127.0.0.1:3306/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull username: root password: root + filters: log4j,wall,mergeStat logging: level: debug @@ -74,6 +75,7 @@ spring: url: jdbc:mysql://127.0.0.1:3306/guns?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull username: root password: root + filters: log4j,wall,mergeStat logging: level: warn