2011-11-23 52 views
0

我有一個自簽名證書的私有blob存儲(swift)。jclouds:如何在創建BlobStoreContext時提供自己的KeyStore

我想在jclouds中使用此商店。現在,以下工作:

Properties overrides = new Properties(); 
overrides.setProperty(Constants.PROPERTY_ENDPOINT, "https://xxx.com:8080/auth"); 
overrides.setProperty(Constants.PROPERTY_TRUST_ALL_CERTS, "true"); 
overrides.setProperty(Constants.PROPERTY_RELAX_HOSTNAME, "true"); 

BlobStoreContext context = new BlobStoreContextFactory().createContext("swift", 
    userCredentials.getIdent(), userCredentials.getSecret(), 
    ImmutableSet.<Module> of(), overrides); 

然而,因爲我有證書,有沒有辦法讓這個更安全,並告訴jclouds使用特定的證書,而不是相信任何?

我知道如何獲取證書加載到一個Certificate對象,我也知道如何創建一個KeyStore對象與證書。

我的問題是:如何讓jclouds使用我的CertificateKeyStore進行證書驗證?

回答

0

阿德里安向我指出在jclouds用戶郵件列表,它現在是可能的,通過添加這樣的模塊:

.modules(ImmutableSet.of(new AbstractModule(){ 
@Override public void configure() { 
    bind(new TypeLiteral<Supplier<SSLContext>>(){}).toInstance(new 
    Supplier<SSLContext>() { 
    @Override public SSLContext get() { 
    return whatYouManage; // note this is called per-request so 
          //can be expensive. 
    } 
    } 
} 
})) 
相關問題