開發基於 Applet 的實時消息隊列監控程序,涉及本地資源訪問,必須進行數字簽名認證。環境:Windows 2000、WebLogic 6.0、JBuilder 4.0。關鍵區分:服務器端與客戶端文件分佈不可混淆。
替換 IE 默認 JVM,從 java.sun.com 下載安裝。HTML 頁面需包含自動下載 JRE 的代碼(見後文)。
jar xf weblogic.jar),與編譯類放同一目錄,執行 jar cvf monitor.jar *.class 生成 monitor.jar。keytool -genkey -keystore monitor.keystore -alias monitor,按提示輸入信息與密碼。jarsigner -keystore monitor.keystore monitor.jar monitor,原文件被簽名。keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer 生成 monitor.cer(唯一需分發給客戶端的文件)。monitor.jar、monitor.keystore、monitor.cer 拷貝至 WebLogic 應用目錄 (如 C:\bea\wlserver6.0\config\mydomain\applications\DefaultWebApp_myserver\...)。monitor.cer 至 JRE\lib\security\ 目錄。cacerts:keytool -import -alias monitor -file monitor.cer -keystore cacerts,密碼為默認 changeit。policytool,打開 java.policy,修改 keystore 為 cacerts (JKS),添加策略項:
https://SERVER_IP:7001/* (端口視服務器而定)monitorAllPermission<html>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=gb2312">
<center>
<h3>消息中心實時監控平台</h3>
<hr>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
width="900" height="520" align="baseline"
codebase="https://192.168.2.217:7001/j2re-1_3_0_01-win-i.exe#Version=1,3,0,0">
<PARAM NAME="java_code" VALUE="wise.monitor.applet.monitorApplet">
<PARAM NAME="java_codebase" VALUE="monitor/classes">
<PARAM NAME="java_type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="ARCHIVE" VALUE="monitor.jar">
<PARAM NAME="scriptable" VALUE="true">
</OBJECT>
</center>
</html>
cer、java.policy、cacerts 至客戶端,但可能覆蓋原有認證。Applet 簽名部署流程繁瑣,但掌握核心步驟與優化策略,可有效解決本地資源訪問的安全限制。