posts - 15,comments - 29,trackbacks - 0

从论坛的一篇文章(http://www.javaeye.com/topic/335078)得知,在BIRT VIEWER SERVLET内部也有认证接口代码,只是简单的返回了true,没有做处理。BIRT VIEWER SERVLET是报表处理的入口,该接口如果返回flase,那么报表将不会显示,目标就是在该接口加入我们自己的逻辑实现,本阶段先实现简单的安全认证,即在没有登录的情况下无法访问报表。

处理步骤:

1.把birt viewer项目和现有项目整合在一起(为了让birt viewer项目能获取到现有项目的session)

2.修改BIRT VIEWER SERVLET类,该类源码在org.eclipse.birt.report.servlet.BirtEngineServlet下面,找到函数经行修改,红色为新增部分

/**
  * Local authentication.
  *
  * @param request
  *            incoming http request
  * @param response
  *            http response
  * @return
  */
 protected boolean __authenticate( HttpServletRequest request,
   HttpServletResponse response )
 {
  
  //报表权限,没有登录访问不了
  if(request.getSession().getAttribute("user")==null)
  {
   return false;
  }

  
  return true;
 }

3.将该类编译后放进BIRT包里面。

posted on 2009-03-19 10:42 流腥鱼 阅读(2016) 评论(2)  编辑  收藏 所属分类: 报表

FeedBack:
# re: Birt报表安全权限方案
2009-03-22 18:38 | 张校云
不错  回复  更多评论
  
# re: Birt报表安全权限方案
2009-07-09 15:49 | royliaoy
把下面这段代码加到webcontent > pages > layout > FramesetFragment.jsp中,也可以实现

<script >
if ("<%= request.getSession().getAttribute("user") %>" == null) {
alert("需要登陆才能访问");
window.location.href = "login.jsp";
}
</script >

  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: