Description
The class org.apache.karaf.jaas.config.impl.OsgiConfiguration contains a java.util.List<JaasRealm> which is intended to track jaas realms added via blueprint via it's register/unregister pair using the whiteboard pattern. This list is not mutated properly during unregister, since the list is not keyed by name or other id, and the passed in value during remove is a proxy. Thus, after doing an "update" on a bundle that contains a jaas configuration, the list grows by one, but contains a stale service reference.
When this occurs, a subsequent call to getAppConfigurationEntry() causes a runtime exception, "org.osgi.service.blueprint.container.ServiceUnavailableException". No jaas-based authentication can happen after this.
Attachments
Issue Links
- is related to
-
KARAF-330 Removal of a JAAS realm service actually remove the wrong reference in the internal storage
- Closed