首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

BIRT Viewer 安全權限攔截實作

     編輯:Java 相關知識

BIRT Viewer Servlet 內建 __authenticate 驗證介面,預設直接返回 true。透過覆寫該方法,可在未登入時攔截報表請求,實現簡易權限控制。

一、整合 BIRT Viewer 至現有 Web 專案

將 BIRT Viewer WAR 解壓並合併至主專案,確保共用同一 HttpSession,以便讀取登入用戶資訊。

二、修改 BirtEngineServlet

原始碼位置:org.eclipse.birt.report.servlet.BirtEngineServlet

protected boolean __authenticate(HttpServletRequest request,
                                 HttpServletResponse response) {
    // 未登入攔截
    if (request.getSession().getAttribute("user") == null) {
        return false; // 直接拒絕,報表不渲染
    }
    return true;
}

三、編譯並替換

  1. 編譯修改後的類別。
  2. 將 BirtEngineServlet.class 打入 birt.war/WEB-INF/classes/org/eclipse/birt/report/servlet/ 或專案 WEB-INF/classes 覆蓋。
  3. 重新部署應用。

四、驗證效果

  • 未登入直接訪問報表 URL → 顯示 403 或空白(視容器錯誤頁而定)。
  • 登入後訪問 → 正常渲染報表。

五、擴充建議

  • 整合 Spring Security / Shiro,檢查具體角色權限。
  • 記錄稽核日誌:誰、何時、存取哪份報表。
  • 支援單點登入 (SSO) Token 驗證。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved