使用struts检查pfx文件类型

时间:2012-06-19 07:25:27

标签: java java-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 **/
}

但是,大多数情况下,内容类型是application / octet-stream,这是没用的

1 个答案:

答案 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文件。