2013-10-24 30 views
6

我正在寻找实现使用客户端证书身份验证的多线程SSL客户端,所以我需要提供一个KeyStore到SSLContext。我需要在多个线程上执行此操作。使用KeyStore的一个实例是否安全?我不会自己修改密钥库,我假定SSL实现也不需要,所以对象应该是有效的不可变的。Oracle Java KeyStore实现是线程安全的吗?

+0

你最终解决了这个问题吗? – Felix

回答

1

通常,JCA服务不是线程安全的,并且KeyStoreSpi不会对实施者施加任何线程安全要求。但是,如果您的密钥存储区实际上是不可变的,那么确保其初始化状态对所有线程都可见,这是没有问题的。例如,将KeyStore存储在volatile变量中,或将其从类初始化程序中加载(由于异常处理可能会非常棘手)。