Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-3959

can't use same config file from multiple bundles with config admin

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • fuse-7.0
    • jboss-fuse-6.2, jboss-fuse-6.2.1
    • Karaf
    • % %

    Description

      There is problem when another bundle wants to use etc/org.apache.karaf.jaas.cfg config file.
      usecase
      Add LDAPLoginModule, also keep properties login module with system configuration.

      steps to reproduce

      1. start fuse
      2. deploy attached blueprint.xml (copy into $FUSE_HOME/deploy/)

          ...
          <!-- reference to etc/org.apache.karaf.jaas.cfg (used by karaf jaas modules) -->
      	<cm:property-placeholder persistent-id="org.apache.karaf.jaas" update-strategy="reload"
      		placeholder-prefix="${" placeholder-suffix="}">
      	    ...
      	</cm:property-placeholder>
          ...
      

      3. change something in etc/org/apache.karaf.jaas.cfg (for instance set encryption.enabled = true)
      4. check log:tail for following error

      2015-09-08 14:14:42,931 | ERROR | ache.karaf.jaas) | configadmin                      | 7 - org.apache.felix.configadmin - 1.8.2 | 
          Cannot use configuration org.apache.karaf.jaas for [org.osgi.service.cm.ManagedService, id=618, bundle=264/blueprint:file:/home/jludvice/apps/fuse/jboss-fuse-6.2.1.redhat-027/deploy/visibility_reproducer.xml]: 
              No visibility to configuration bound to mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.modules/2.4.0.redhat-621026
      

      It affects fuse 6.2.0.redhat-020 and 6.2.1.redhat-027 (didn't test other)
      Maybe it's related to https://issues.apache.org/jira/browse/KARAF-3103.

      diff of KARAF-3101 fix:

      Unable to find source-code formatter for language: diff. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      diff --git a/config/core/src/main/java/org/apache/karaf/config/core/impl/ConfigRepositoryImpl.java b/config/core/src/main/java/org/apache/karaf/config/core/impl/ConfigRepositoryImpl.java
      index 4055cd9..4c63375 100644
      --- a/config/core/src/main/java/org/apache/karaf/config/core/impl/ConfigRepositoryImpl.java
      +++ b/config/core/src/main/java/org/apache/karaf/config/core/impl/ConfigRepositoryImpl.java
      @@ -85,7 +85,7 @@ public class ConfigRepositoryImpl implements ConfigRepository {
              @Override
              public String createFactoryConfiguration(String factoryPid, Dictionary<String, ?> properties) {
                      try {
      -                       Configuration config = configAdmin.createFactoryConfiguration(factoryPid);
      +                       Configuration config = configAdmin.createFactoryConfiguration( factoryPid, null);
                              config.update(properties);
                              return config.getPid();
                      } catch (IOException e) {
      

      possible workaround
      Using different config file for jaas, but then it's "yet another config file".

      	<cm:property-placeholder persistent-id="org.apache.karaf.jaas2" update-strategy="reload"
      		placeholder-prefix="${" placeholder-suffix="}">
      

      Attachments

        Activity

          People

            janstey@redhat.com Jonathan Anstey
            jludvice Josef Ludvicek (Inactive)
            Josef Ludvicek Josef Ludvicek (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: