有没有办法检查上传的证书真的是一个pfx证书?我尝试使用以下代码:
LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");
if (!cerFile.getContentType().equals("application/x-pkcs12")) {
/** return error code **/
}
但是,大多数情况下,内容类型是application / octet-stream,这是没用的
答案 0 :(得分:1)
您可以尝试将上传的文件加载到KeyStore:
LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(cerFile.getInputStream(), null);
即使.pfx包含受密码保护的私钥,仍然应该加载.pfx(没有密码它基本上没用,但是应该加载)。
如果没有异常且加载后keyStore.size()
等于1,那么它必须是.pfx文件。