如题,在jfinal中使用druid,sql数据直接就可以查看,想增加登录验证,百度到有在web.xml中
配置拦截器,这样确实可以
<!-- Druid,监控数据库,以及WEB访问连接信息 --> <!-- 参考: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter --> <filter> <filter-name>DruidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value> </init-param> <init-param> <param-name>sessionStatMaxCount</param-name> <param-value>2000</param-value> </init-param> <init-param> <param-name>sessionStatEnable</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>principalSessionName</param-name> <param-value>session_user_key</param-value> </init-param> <init-param> <param-name>profileEnable</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>DruidWebStatFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置 Druid 监控信息显示页面 --> <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> <init-param> <!-- 允许清空统计数据 --> <param-name>resetEnable</param-name> <param-value>true</param-value> </init-param> <init-param> <!-- 用户名 --> <param-name>loginUsername</param-name> <param-value>druid</param-value> </init-param> <init-param> <!-- 密码 --> <param-name>loginPassword</param-name> <param-value>druid</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern> </servlet-mapping>
但是jfinal拦截所有请求了,jfinal如果想配置要怎么配置呢,
重新DruidStatViewHandler要怎么重写,我增加username=“druid”,没有用
jfinal 对 druid 的登录与权限支持,不用修改 web.xml,直接在 YourJFinalConfig 的 configHandler 中添加DruidStatViewHandler,并为其指定IDruidStatViewAuth 实现类即可:
public void configHandler(Handlers me) { DruidStatViewHandler dsvh = new DruidStatViewHandler("visitPath", new IDruidStatViewAuth(){ public boolean isPermitted(HttpServletRequest request) { // 这里只是简单的判断访问者是否登录,还可以做更加细致的权限控制 return request.getSession().getAttribute("loginUser") != null; } }); me.add(dsvh); }
以上的 IDreuidStatViewAuth 只是简单判断用户是否登录,实际项目中可以对该用户是否拥有访问 druid 的权限进行更细致的检测。
以上的 "visitPath" 是访问 druid 的 url,DruidStatViewHander 会拦截所有请求,并将 "visitePath" 定向到 druid 管理界面。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。