Java 使用struts检查pfx文件类型

Java 使用struts检查pfx文件类型,java,jakarta-ee,struts,struts-1,Java,Jakarta Ee,Struts,Struts 1,有没有办法检查上传的证书是否真的是pfx证书?我尝试了以下代码: LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm; FormFile cerFile = (FormFile) lazyForm.get("cerFile"); if (!cerFile.getContentType().equals("application/x-pkcs12")) { /** return error code **/ } 但是,

有没有办法检查上传的证书是否真的是pfx证书?我尝试了以下代码:

LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");

if (!cerFile.getContentType().equals("application/x-pkcs12")) {
    /** return error code **/
}

但是,大多数情况下,内容类型是应用程序/八位字节流,这是没有用的

您可以尝试将上载的文件加载到:

即使.pfx包含受密码保护的私钥,.pfx也应该被加载(没有密码基本上是无用的,但应该加载)

如果加载后没有异常且
keyStore.size()
等于1,则它必须是.pfx文件

LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");

KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(cerFile.getInputStream(), null);