簡體   English   中英

pkcs11異常解析配置:意外值Token ['(']

[英]pkcs11 exception parsing configuration: Unexpected value Token['(']

我知道這不是一個新問題(請參閱https://bugs.openjdk.java.net/browse/JDK-8023745 ),但是我希望有人能夠提供一個很好的解決方法,以便我們推出。

我們正在部署一個使用pkcs11的應用程序,並且在解析配置時遇到問題,該配置位於“程序文件(x86)”中。 我們得到的是:

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

在開發環境中,將位置移動到“干凈”路徑即可解決問題,因此問題肯定是(x86)。

有什么好的解決方法,希望對最終用戶造成的麻煩最小?

因此,最好的解決方案是使用org.apache.commons.io.FileUtils中的FileUtils.copyFileToDirectory()使用“有效”路徑將文件復制到另一個位置。

我在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 ,所以我最后一次嘗試是使用"和“轉義” file.separator (只需應用replace("\\\\","\\\\\\\\")到配置之前的路徑):

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

這樣可以正確加載庫。 我針對Java 8更新141進行了測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM