开发者社区> 问答> 正文

jfinal使用druid怎么配置druid登录权限:报错

如题,在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”,没有用

展开
收起
kun坤 2020-06-13 23:57:26 902 0
1 条回答
写回答
取消 提交回答
  • 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 管理界面。

    2020-06-13 23:57:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载