本教學系列共分兩部分,旨在示範如何利用 IBM Rational Application Developer、Data Studio 及 Rational AppScan,打造基於 Java 的安全 Web 應用程式。第一部分著重於使用 Rational Application Developer 的整合開發環境與 Data Studio 的 pureQuery 功能,快速建立一個以 Java 為基礎的財產管理應用系統;第二部分將介紹如何使用 Rational AppScan 掃描並修補安全漏洞。
注意:兩工具必須安裝在同一個 Package Group 中,以確保相容性。安裝時請參考 IBM 官方文件確認版本對應關係。
WEALTH 的資料庫,手動插入測試資料至 USERS、SECURITIES、REALESTATE 三張表。在 RAD 中切換至「資料」透視圖,右鍵點選「連線資料夾」→「新增連線」,選擇 DB2,資料庫名稱填 WEALTH,測試連線成功後完成。
wealthwealth右鍵專案 →「Add pureQuery Support」,全部選項勾選,選擇剛建立的 WEALTH 連線。
將以下 JAR 複製到 WebContent/WEB-INF/lib/ 目錄:
pdq.jar(pureQuery 執行期)db2jcc.jar 及 db2jcc_license_cisuz.jar(DB2 JDBC 驅動)在 RAD 中重新整理該目錄,並從建置路徑移除兩個 DB2 驅動 JAR(僅保留於部署用的 EAR 中)。
| 表格 | 主要欄位 |
|---|---|
| USERS | userid (PK), password |
| SECURITIES | autoid (PK), userid (FK), symbol, quantity, securitytype |
| REALESTATE | autoid (PK), userid (FK), propertyValue, address, city, zip, state |
src,套件名分別設為 com.ibm.ds.users、com.ibm.ds.securities、com.ibm.ds.realestate。REALESTATE 表的 propertyvalue 改為 propertyValue 符合 Java 命名慣例。完成後專案將新增四個套件,包含 Bean、Data 介面與實作類別。
預設產生的查詢僅支援全表或主鍵查詢,需手動加入依使用者 ID 查詢的方法:
@Select(sql="select AUTOID, PROPERTYVALUE, ADDRESS, CITY, ZIP, STATE, USERID from REALESTATE where USERID = ?")
Iterator<Realestate> getRealestates(String userid);
@Select(sql="select AUTOID, USERID, SYMBOL, QUANTITY, SECURITYTYPE from SECURITIES where USERID = ?")
Iterator<Securities> getSecuritiess(String userid);
儲存後,對應的實作類別會自動更新。
在 WebContent 下建立五個 JSP:login.jsp、welcome.jsp、logout.jsp、realestate.jsp、securities.jsp。
使用 <jsp:useBean> 引用 UsersDataImpl,透過 pureQuery 驗證帳密,成功則寫入 Session 並導向歡迎頁。
檢查 Session 中的 userid,顯示使用者名稱,提供「股票查詢」、「房產查詢」、「登出」連結。
清除 Session 的 userid 並導回登入頁。
realestate.createRealestate() 寫入資料庫,成功後重導本頁更新列表。https://finance.yahoo.com/d/quotes.csv) 取得即時股價與公司名稱。login.jsp →「Run As」→「Run on Server」。wealthEAR 專案。https://localhost:9080/wealth/login.jsp。測試帳號:tyler/tyler 或 hilbilly/pass,驗證登入、查詢房產、新增房產、查詢證券即時行情等功能。
本教學示範了從安裝工具、建立資料庫連線、產生 pureQuery 程式碼、擴充查詢、撰寫 JSP 到部署測試的完整流程。下一部分將引入 Rational AppScan 掃描應用程式安全漏洞並進行修補,敬請期待。