【问题标题】:Checking pfx file type with struts使用 struts 检查 pfx 文件类型
【发布时间】:2012-06-19 07:25:26
【问题描述】:
有什么方法可以检查上传的证书真的是pfx证书吗?我尝试使用以下代码:
LazyValidatorForm lazyForm = (LazyValidatorForm) actionForm;
FormFile cerFile = (FormFile) lazyForm.get("cerFile");
if (!cerFile.getContentType().equals("application/x-pkcs12")) {
/** return error code **/
}
但是,大多数时候,内容类型是application/octet-stream,这是没有用的
【问题讨论】:
标签:
java
jakarta-ee
struts
struts-1
【解决方案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文件。