從論壇的一篇文章(http://www.javaeye.com/topic/335078)得知,在BIRT VIEWER SERVLET內(nèi)部也有認(rèn)證接口代碼,只是簡(jiǎn)單的返回了true,沒(méi)有做處理。BIRT VIEWER SERVLET是報(bào)表處理的入口,該接口如果返回flase,那么報(bào)表將不會(huì)顯示,目標(biāo)就是在該接口加入我們自己的邏輯實(shí)現(xiàn),本階段先實(shí)現(xiàn)簡(jiǎn)單的安全認(rèn)證,即在沒(méi)有登錄的情況下無(wú)法訪問(wèn)報(bào)表。
處理步驟:
1.把birt viewer項(xiàng)目和現(xiàn)有項(xiàng)目整合在一起(為了讓birt viewer項(xiàng)目能獲取到現(xiàn)有項(xiàng)目的session)
2.修改BIRT VIEWER SERVLET類(lèi),該類(lèi)源碼在org.eclipse.birt.report.servlet.BirtEngineServlet下面,找到函數(shù)經(jīng)行修改,紅色為新增部分
/**
* Local authentication.
*
* @param request
* incoming http request
* @param response
* http response
* @return
*/
protected boolean __authenticate( HttpServletRequest request,
HttpServletResponse response )
{
//報(bào)表權(quán)限,沒(méi)有登錄訪問(wèn)不了
if(request.getSession().getAttribute("user")==null)
{
return false;
}
return true;
}
3.將該類(lèi)編譯后放進(jìn)BIRT包里面。
posted on 2009-03-19 10:42
流腥魚(yú) 閱讀(2032)
評(píng)論(2) 編輯 收藏 所屬分類(lèi):
報(bào)表