﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-懒人编码-随笔分类-报表</title><link>http://www.blogjava.net/goodlyts/category/38397.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 19 Mar 2009 03:23:33 GMT</lastBuildDate><pubDate>Thu, 19 Mar 2009 03:23:33 GMT</pubDate><ttl>60</ttl><item><title>Birt报表安全权限方案</title><link>http://www.blogjava.net/goodlyts/archive/2009/03/19/260686.html</link><dc:creator>流腥鱼</dc:creator><author>流腥鱼</author><pubDate>Thu, 19 Mar 2009 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/goodlyts/archive/2009/03/19/260686.html</guid><wfw:comment>http://www.blogjava.net/goodlyts/comments/260686.html</wfw:comment><comments>http://www.blogjava.net/goodlyts/archive/2009/03/19/260686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/goodlyts/comments/commentRss/260686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goodlyts/services/trackbacks/260686.html</trackback:ping><description><![CDATA[<p>从论坛的一篇文章（http://www.javaeye.com/topic/335078）得知，在BIRT VIEWER SERVLET内部也有认证接口代码，只是简单的返回了true，没有做处理。BIRT VIEWER SERVLET是报表处理的入口，该接口如果返回flase，那么报表将不会显示，目标就是在该接口加入我们自己的逻辑实现，本阶段先实现简单的安全认证，即在没有登录的情况下无法访问报表。</p>
<p>处理步骤：</p>
<p>1.把birt viewer项目和现有项目整合在一起（为了让birt viewer项目能获取到现有项目的session）</p>
<p>2.修改BIRT VIEWER SERVLET类，该类源码在org.eclipse.birt.report.servlet.BirtEngineServlet下面，找到函数经行修改，红色为新增部分</p>
<p><font style="background-color: #ccffff">/**<br />
&nbsp; * Local authentication.<br />
&nbsp; * <br />
&nbsp; * @param request<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; incoming http request<br />
&nbsp; * @param response<br />
&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http response<br />
&nbsp; * @return<br />
&nbsp; */<br />
&nbsp;protected boolean __authenticate( HttpServletRequest request,<br />
&nbsp;&nbsp;&nbsp;HttpServletResponse response )<br />
&nbsp;{<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;<font style="color: #ff0000">//报表权限，没有登录访问不了<br />
&nbsp;&nbsp;if(request.getSession().getAttribute("user")==null)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;}</font><br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;return true;<br />
&nbsp;}</font></p>
<p>3.将该类编译后放进BIRT包里面。</p>
 <img src ="http://www.blogjava.net/goodlyts/aggbug/260686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goodlyts/" target="_blank">流腥鱼</a> 2009-03-19 10:42 <a href="http://www.blogjava.net/goodlyts/archive/2009/03/19/260686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>