在PrimeFaces FileUpload组件中启用ClamAV



正如PrimeFaces文档所说,要在FileUpload中启用ClamAV,我们只需要:

  • virusScan="true"in component
  • web.xml中primefaces.virusscan.CLAMAV_HOST上下文参数
  • web.xml中primefaces.virusscan.CLAMAV_PORT上下文参数

这些都很好,但是没有调用ClamAV。

我启用了PF日志记录,输出如下:

[org.primefaces.virusscan.VirusScannerService] Performing virus scan...
[org.primefaces.virusscan.VirusScannerService] Skipping virus scan with org.primefaces.virusscan.impl.VirusTotalReportScanner provider since it is disabled
[org.primefaces.virusscan.VirusScannerService] No virus detected

如我们所见,VirusScannerService未将ClamAV服务列为选项。

VirusScannerService使用java.util.ServiceLoader查找类加载器中可用的服务。

知道为什么不能加载服务吗?

11.0 PrimeFaces。

这是一个bug,但是有一个解决方法。

问题:https://github.com/primefaces/primefaces/issues/8812

公关:https://github.com/primefaces/primefaces/pull/8813

现在修复这个…注册服务提供者,只需在WAR的META-INF/services目录中放置一个名为org.primefaces.virusscan.VirusScanner的文件。

确保它包含这一行:

org.primefaces.virusscan.impl.ClamDaemonScanner