KeyStoreService usage | Community
Skip to main content
New Participant
Aug 17, 2020 12:28 PM UTC
Solved

KeyStoreService usage

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

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Vijayalakshmi_S
Vijayalakshmi_SAccepted solution
Level 10
Aug 18, 2020 2:38 PM UTC

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)

4 replies

Vijayalakshmi_S
Vijayalakshmi_SAccepted solution
Level 10
Aug 18, 2020 2:38 PM UTC

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)

Translate
xriscAuthor
New Participant
Aug 17, 2020 3:55 PM UTC

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?

Translate
vanegi
Employee
Aug 17, 2020 1:03 PM UTC

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!!

Translate
xriscAuthor
New Participant
Aug 17, 2020 3:39 PM UTC
keyStoreService.createTrustStore(adminResolver, STORE_PASSWD.toCharArray()) still throws a NullPointerException due to a null keyStoreService. I have the following already defined: @3214626 private KeyStoreService keyStoreService; Any idea on why it's still throwing a NullPointerException? and how to resolve?
Translate