java - pkcs11异常解析配置: Unexpected value Token ['(' ]

标签 java java-8 pkcs#11

我知道这不是一个新问题(请参阅 https://bugs.openjdk.java.net/browse/JDK-8023745 ),但我希望有人能提供我们可以推出的良好解决方法。

我们正在部署一个使用 pkcs11 的应用程序,在解析配置时遇到了问题,该配置位于“程序文件 (x86)”中。我们得到的是:

sun.security.pkcs11.ConfigurationException:意外值 Token['('],第 2 行

在开发环境中,将位置移动到“干净”路径即可解决问题,因此问题肯定是 (x86)。

什么是好的解决方法,希望对最终用户造成的麻烦最少?

最佳答案

我在 Windows 中找到了解决此问题的简单方法。在我的例子中,我试图从 Mozilla 32 位安装目录加载 nss native 库。如果我这样配置路径:

name = NSS
library = C:\Program Files (x86)\Mozilla Firefox\softokn3.dll

我收到 Unexpected value Token['('] 异常。如果我尝试添加 " 来包含库路径:

name = NSS
library = "C:\Program Files (x86)\Mozilla Firefox\softokn3.dll"

然后错误发生变化,我得到:

Caused by: sun.security.pkcs11.ConfigurationException: Absolute path required for library value: C:Program Files (x86)Mozilla Firefoxsoftokn3.dll

似乎 " 绕过了括号问题,但似乎导致 file.separator 丢失,所以我最后一次尝试使用 "和“转义”file.separator(简单地将 replace("\\","\\\\") 应用到配置之前的路径):

name = NSS
library = "C:\\Program Files (x86)\\Mozilla Firefox\\softokn3.dll"

这样库就可以正确加载了。我针对 Java 8 更新 141 对其进行了测试。

关于java - pkcs11异常解析配置: Unexpected value Token ['(' ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51501701/

相关文章:

java - 捕获数组异常

java - 如何过滤 for 中的列表?

linux - 如何检查智能卡是否在 linux 上工作?

java - 使用硬件 token 加速 jarsigner?

java - 如何使用 oauth API 2.0 为 hotmail 创建访问 token

java - 将android应用程序库中的图像上传到本地spring服务器

java - IntelliJ 调试器找不到变量

dll - PKCS11 Windows 无效引擎 YubiHSM2

java - Ubuntu JRE 检测到 fatal error

java - 具有多个参数的 Java 8 的 Function.Function