企業級應用常需掃描上傳檔案防止惡意程式。Symantec Scan Engine (SSE) 提供高效能防毒掃描服務,支援 ICAP 協定。本文記錄在 J2EE 環境整合 SSE 的步驟與程式碼範例。
C:\Program Files\Common Files\Symantec Shared\Licenses。icap://host:1344/avscan。官方提供 virus-scan-connect.jar (內含 VirusScanManager) 封裝 ICAP 通訊細節。
mvn install:install-file -Dfile=virus-scan-connect.jar -DgroupId=com.symantec -DartifactId=sav-client -Dversion=5.1 -Dpackaging=jar
import com.symantec.sav.VirusScanManager;
import java.io.*;
public class VirusScanClient {
private static final String ICAP_URL = "icap://10.225.69.89:1344/avscan";
public static void main(String[] args) {
VirusScanManager vsm = new VirusScanManager(ICAP_URL);
File testFile = new File("./test/eicar.com.txt"); // EICAR 測試病毒檔
try (InputStream in = new FileInputStream(testFile)) {
// 檔名、MIME型態、輸入流
vsm.processScanVirus("eicarTestFile.txt", "text/plain", in);
System.out.println("掃描完成,未發現病毒。");
} catch (Exception e) {
// 捕獲病毒異常或連線錯誤
System.err.println("掃描失敗或檢測到病毒: " + e.getMessage());
e.printStackTrace();
}
}
}
VirusScanManager(String icapUrl):建立與掃描伺服器的連線池。processScanVirus(String filename, String mimeType, InputStream content):同步阻塞式掃描,檢測到病毒會拋出例外。整合成熟的企業級防毒引擎,能有效降低惡意檔案風險,符合合規需求。