代码之家  ›  专栏  ›  技术社区  ›  AragornSG

PKCS11分析配置时出现异常:意外的值标记['(']

  •  1
  • AragornSG  · 技术社区  · 6 年前

    我知道这不是一个新问题(见 https://bugs.openjdk.java.net/browse/JDK-8023745 但我希望有人能有一个很好的解决方案,我们可以推出。

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

    sun.security.pkcs11.configurationException:意外的值标记['('],第2行

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

    什么是一个很好的解决方案,有希望对最终用户来说是最小的麻烦?

    2 回复  |  直到 6 年前
        1
  •  1
  •   AragornSG    6 年前

    因此,最好的解决方案是使用org.apache.commons.io.fileutils中的fileutils.copyfiletodirectory()将文件复制到另一个具有“有效”路径的位置。

        2
  •  0
  •   albciff    6 年前

    我在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 丢失了,所以我上次尝试使用 “逃逸” 文件分离器 (仅适用于 replace("\\","\\\\") 输入配置之前的路径):

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

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