2013-10-24 32 views
6

我正在尋找實現使用客戶端證書身份驗證的多線程SSL客戶端,所以我需要提供一個KeyStore到SSLContext。我需要在多個線程上執行此操作。使用KeyStore的一個實例是否安全?我不會自己修改密鑰庫,我假定SSL實現也不需要,所以對象應該是有效的不可變的。Oracle Java KeyStore實現是線程安全的嗎?

+0

你最終解決了這個問題嗎? – Felix

回答

1

通常,JCA服務不是線程安全的,並且KeyStoreSpi不會對實施者施加任何線程安全要求。但是,如果您的密鑰存儲區實際上是不可變的,那麼確保其初始化狀態對所有線程都可見,這是沒有問題的。例如,將KeyStore存儲在volatile變量中,或將其從類初始化程序中加載(由於異常處理可能會非常棘手)。