|
There are two remaining components here:
- aaa-datastore-config.xml things, which specify how the datastore should be set up. There are two parts to this:
- The fact we should use H2Datastore. This feels like we should just use whatever advertizes itself as IIDMStore, though.
- The lifecycle policy, time-to-live and time-to-wait, which feels like something common to all uses of IIDMStore
- aaa-app-config.xml things, which relate to the actual policy. There are mutliple parts to this:
- ldapRealm configuration, commented out by default
- ODLActiveDirectoryRealm, commented out
- jdbcRealm, commented out
- mdsalRealm, commented out
- moonAuthRealm, commented out
- keystoneAuthRelam, commented out
- tokenAuthRealm, active by default, and the only one referenced
- url policy, which has four parts:
- global policy, as expressed by /**
- (what I suspect is) neutron access policy, as expressed by /**/v1/**
- AAA configuration policy, as expressed by /**/config/aaa/**. This I suspect is meant to cover RESTCONF modification of AAA configuration – and that is broken by RFC8040 URL format
for a looooong time
- Access to controller's sal-cluster-admin, as expressed by /**/operations/cluster-admin**. This also is tightly bound to how RESTCONF URLs work
This points out at least 10 more subtasks to deal with the individual cases.
The 1.* cases seem like an easy first pick.
The 2.* cases really feel like a missing modeling indirection. While the versatility of aaa-app-config:string-pair is awesome for expressing any Shiro configuration the tie-in to what the OpenDaylight components provide/require is lackluster at best. The realms seam to be easy (pending further analysis), but the URL policy part should really follow the whiteboard pattern, which needs to be reflect in code – they clearly are things that plug into AAA.
|