我有一个可以在Tomcat 6.20上正常运行的应用程序,我在应用程序中使用了令牌A3智能卡读卡器。一切都很好。现在,我想将我的应用程序迁移到Glassfish v2.1,然后,我的噩梦开始了!我可以使用相同的代码来加载提供程序吗?在Tomcat中运作良好,但在glassfish v2中运气不好。

String configName = "C:\\pkcs11.config";
Provider provider = new SunPKCS11(configName);


configName是具有以下内容的文件:

name = Safesign
library = C:\windows\system32\aetpkss1.dll


我用它来获取KeySotore

char[] pin = { '1', '2', '3', '4' };
   String configName = "C:\\pkcs11.config";
   Provider p = new SunPKCS11(configName);
   KeyStore.Builder builder = KeyStore.Builder.newInstance("pkcs11",
     p, new KeyStore.PasswordProtection(pin));
   ks = builder.getKeyStore();


好像glassfish不在加载DLL,并且找不到我的USB读卡器的插槽。
拜托,有人知道我该如何解决我的问题?
救命!!!
*对“泰山英语”感到抱歉。

最佳答案

重用您的SunPKCS11实例,并且不要忘记调用Security.addProvider

07-28 13:05