2011-04-21 89 views
0

我正在处理一个非常特殊的问题。我正在开发一个需要访问Firefox证书存储的小程序(不幸的是,他们需要一个小程序,Java Web Start不适用)。在与Firefox不同的地址空间中运行小程序

Mozilla提供了JSS(Network Security Services for Java),在给定Firefox(或Thunderbird)概要文件目录的情况下,程序员可以访问所有证书和多个加密设施。

现在,问题所在。我签名的applet可以执行Java程序允许执行的任何操作。所以我可以加载运行JSS所需的本地库。问题是我在使用它时遇到访问违规,我知道为什么。崩溃发生在一个名为mozcrt19.dll的模块中,这似乎是Mozilla的“自定义”C运行时库,而jss4.dll和朋友很可能在MS标准C运行时进行测试。如果没有加载mozcrt19.dll,则不会发生崩溃。该小程序在浏览器地址空间的之外运行,例如使用Java Web Start。

简而言之,这个问题是:因为我可以摆脱这个模块的唯一方法是打破Firefox的地址空间,我怎么能在没有Java Web Start的情况下运行我的java applet地址空间?

或者,您是否可以建议我使用任何解决方法,技巧,破解或任何其他方法来实现相同的效果?我愿意接受任何建议。

在此先感谢。

回答

1

您不必在单独的地址空间中运行小程序本身。您可以让它启动一个单独的进程来访问证书,并与在浏览器进程中运行的小程序进行通信。

+0

这是一个非常非常好的主意。一个工作进程(...为什么不是另一个Java应用程序?)。 – gd1 2011-04-22 10:44:24

1

请确保此:

的Windows

  • Mozilla的 安装目录下创建JSS目录。
  • 将JSS JAR文件复制到jss 目录中。
  • 复制JSS本机库DLL到 Mozilla安装的目录。

Linux/Solaris上

  • Mozilla的 安装目录下创建JSS目录。

  • 将JSS JAR文件复制到jss 目录中。

  • 复制JSS本机库.so到 Mozilla的安装目录。

  • 将Mozilla的启动脚本设置为Mozilla的安装目录的环境变量MOZILLA_HOME 。

  • 更改环境变量 LD_LIBRARY_PATH包括Mozilla的 在Mozilla的 启动脚本安装目录。

+0

我知道。问题是我无法在客户端的机器上预安装东西。 – gd1 2011-04-22 10:45:40