[AAA-191] Certificate Configuration accepts only path relative to ODL directories Created: 25/Nov/19  Updated: 23/Feb/20  Resolved: 23/Feb/20

Status: Resolved
Project: aaa
Component/s: General
Affects Version/s: None
Fix Version/s: Magnesium, Sodium SR3

Type: Bug Priority: Medium
Reporter: Venkatrangan Govindarajan Assignee: Venkatrangan Govindarajan
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

It would be nice for aaa-cert-config.xml file to support both relative and absolute paths. Also if path is not found controller fails to start.

For example, using this aaa-cert-config.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<aaa-cert-service-config xmlns="urn:opendaylight:yang:aaa:cert">
 <use-config>true</use-config>
 <use-mdsal>false</use-mdsal>
 <bundle-name>opendaylight</bundle-name>
 <ctlKeystore>
   <name>/opt/lumina/lsc/controller/etc/controller1.sjt.openedge.keystore.p12</name>
   <alias>controller1.sjt.openedge</alias>
   <store-password>LH0L7Z19KG/sxGOOv8zn</store-password>
 </ctlKeystore>
 <trustKeystore>
   <name>/opt/lumina/lsc/controller/etc/controller1.sjt.openedge.truststore.p12</name>
   <store-password>4xACSpAzJI5mZZ7fy4wo</store-password>
 </trustKeystore>
</aaa-cert-service-config>

Controller fails to start with this ERROR:

2019-08-19T20:55:01,018 | ERROR | Blueprint Extender: 1 | ServiceRecipe                    | 93 - org.apache.aries.blueprint.core - 1.8.3 | Error retrieving service from ServiceRecipe[name='.component-1']
org.osgi.service.blueprint.container.ComponentDefinitionException: Error when instantiating bean certManager of class org.opendaylight.aaa.cert.impl.CertificateManagerService
        at org.apache.aries.blueprint.container.BeanRecipe.wrapAsCompDefEx(BeanRecipe.java:361) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:351) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:282) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:830) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) [93:org.apache.aries.blueprint.core:1.8.3]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:285) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:252) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:149) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) [93:org.apache.aries.blueprint.core:1.8.3]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:704) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:410) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275) [93:org.apache.aries.blueprint.core:1.8.3]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106) [93:org.apache.aries.blueprint.core:1.8.3]
        at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48) [93:org.apache.aries.blueprint.core:1.8.3]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
        at org.opendaylight.aaa.cert.impl.AaaCertProvider.createKeyStores(AaaCertProvider.java:82) ~[?:?]
        at org.opendaylight.aaa.cert.impl.CertificateManagerService.<init>(CertificateManagerService.java:96) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:?]
        at org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:331) ~[?:?]
        at org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:984) ~[?:?]
        at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:349) ~[?:?]
        ... 30 more

Generated at Wed Feb 07 19:08:52 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.