pkcs11 异常解析配置: Unexpected value Token['(']
pkcs11 exception parsing configuration: Unexpected value Token['(']
我知道这不是一个新问题(参见 https://bugs.openjdk.java.net/browse/JDK-8023745 ),但我希望有人能提供一个好的解决方法,我们可以推出。
我们正在部署一个使用 pkcs11 的应用程序,在解析位于 "Program Files (x86)" 的配置时遇到问题。我们得到的是:
sun.security.pkcs11.ConfigurationException: 意外值 Token['('], 第 2 行
在开发环境中,将位置移动到 "clean" 路径即可解决问题,因此问题肯定是 (x86)。
什么是好的解决方法,希望对最终用户造成的麻烦最少?
所以最好的解决方案是将文件复制到另一个位置,使用 "valid" 路径,使用 FileUtils.copyFileToDirectory(),从 org.apache.commons.io.FileUtils .
我在 Windows 中找到了解决此问题的简单方法。在我的例子中,我试图从 Mozilla 32 位安装目录加载 nss 本机库。如果我这样配置路径:
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
丢失了,所以我最后一次尝试使用 "
和 "escaping" file.separator
(在放入配置之前简单地将 replace("\","\\")
应用到路径):
name = NSS
library = "C:\Program Files (x86)\Mozilla Firefox\softokn3.dll"
这样就可以正确加载库了。我测试了 java 8 update 141.
我知道这不是一个新问题(参见 https://bugs.openjdk.java.net/browse/JDK-8023745 ),但我希望有人能提供一个好的解决方法,我们可以推出。
我们正在部署一个使用 pkcs11 的应用程序,在解析位于 "Program Files (x86)" 的配置时遇到问题。我们得到的是:
sun.security.pkcs11.ConfigurationException: 意外值 Token['('], 第 2 行
在开发环境中,将位置移动到 "clean" 路径即可解决问题,因此问题肯定是 (x86)。
什么是好的解决方法,希望对最终用户造成的麻烦最少?
所以最好的解决方案是将文件复制到另一个位置,使用 "valid" 路径,使用 FileUtils.copyFileToDirectory(),从 org.apache.commons.io.FileUtils .
我在 Windows 中找到了解决此问题的简单方法。在我的例子中,我试图从 Mozilla 32 位安装目录加载 nss 本机库。如果我这样配置路径:
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
丢失了,所以我最后一次尝试使用 "
和 "escaping" file.separator
(在放入配置之前简单地将 replace("\","\\")
应用到路径):
name = NSS
library = "C:\Program Files (x86)\Mozilla Firefox\softokn3.dll"
这样就可以正确加载库了。我测试了 java 8 update 141.