Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

KeyStoreService usage

Avatar

Level 1

I'm trying to follow the code example in http://www.sgaemsolutions.com/2020/01/how-to-manage-certificates-in-aem.html but can't figure out how to properly set KeyStoreService. 

 

Always getting a null keyStoreService in the line: KeyStore trustStore = this.keyStoreService.getTrustStore(resourceResolver);

 

Any help or hint would be very welcome. Thanks in advance

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @xrisc,

Can you check if the "KeyStoreService" bundle (Adobe Granite Crypto Keystorecom.adobe.granite.crypto.keystore) is active in your instance. 

And OSGI component that you have written referring the KeyStoreService is active in OSGI components section (In particular, Reference is satisfied)

View solution in original post

4 Replies

Avatar

Employee

Can you try with below sample code, may be this can help:

 

// create truststore
ResourceResolver adminResolver = getResourceResolver(ADMIN, ADMIN);
keyStoreService.createTrustStore(adminResolver, STORE_PASSWD.toCharArray());
KeyStore trustStore = keyStoreService.getTrustStore(adminResolver);
assertNotNull(trustStore);
InputStream is = ResourceReader.getResourceAsStream("/root-ca.crt");
CertificateFactory cf = CertificateFactory.getInstance(GraniteSecurityProvider.X509);
Certificate certificate = cf.generateCertificate(is);
is.close();
trustStore.setCertificateEntry("root_ca", certificate);
adminResolver.close();

 

Thanks!!

Avatar

Level 1
keyStoreService.createTrustStore(adminResolver, STORE_PASSWD.toCharArray()) still throws a NullPointerException due to a null keyStoreService. I have the following already defined: @reference private KeyStoreService keyStoreService; Any idea on why it's still throwing a NullPointerException? and how to resolve?

Avatar

Level 1

keyStoreService.createTrustStore(adminResolver, STORE_PASSWD.toCharArray()) still throws a NullPointerException due to a null keyStoreService.

 

I have the following already defined: 

@reference 

private KeyStoreService keyStoreService;

 

Any idea on why it's still throwing a NullPointerException? and how to resolve?

Avatar

Correct answer by
Community Advisor

Hi @xrisc,

Can you check if the "KeyStoreService" bundle (Adobe Granite Crypto Keystorecom.adobe.granite.crypto.keystore) is active in your instance. 

And OSGI component that you have written referring the KeyStoreService is active in OSGI components section (In particular, Reference is satisfied)