两个java进程之间的IAIK会话

两个java进程之间的IAIK会话,java,session,token,pkcs#11,Java,Session,Token,Pkcs#11,我们有两个Java进程,每个进程都使用IAIK(IAIK.pkcs.pkcs11)与共享的单个令牌NSS/HSM/智能卡进行通信 每个Java进程都创建IAIK会话并登录: session = token.openSession(Token.SessionType.SERIAL_SESSION, Token.SessionReadWriteBehavior.RW_SESSION, null, null); session.login(Session.Use

我们有两个Java进程,每个进程都使用IAIK(
IAIK.pkcs.pkcs11
)与共享的单个令牌NSS/HSM/智能卡进行通信

每个Java进程都创建IAIK会话并登录:

session = token.openSession(Token.SessionType.SERIAL_SESSION,
                    Token.SessionReadWriteBehavior.RW_SESSION, null, null);
session.login(Session.UserType.USER, XXXX);
我们期望当一个Java进程更新令牌(例如:添加证书、密钥)时,另一个Java进程也能看到更改(例如:
session.findObjectsInit(certmetplate)
会找到另一个Java进程添加的证书)

不幸的是,情况似乎并非如此。一旦会话打开并登录,它似乎已经捕获了当时令牌的信息


是否有方法更新/刷新IAIK会话?

查看IAIK的
会话
文档,它似乎没有提供更新/刷新当前会话的选项


但是,您可以实现自己的方法来进行刷新。您可以通过关闭当前会话并使用新会话重新登录来完成此操作。

IMO此行为与IAIK包装器无关,但完全取决于您正在使用的PKCS#11库的实现。您需要查阅NSS/HSM/smartcard的文档以获取答案。