Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-36212

persisted configuration includes cache internals.

XMLWordPrintable

      When you configure the AD plugin (1.47 ) with a cache the main jenkins config contains the internals of the cache implementation and not the spcific cache configuration.

      The plugin should just persist the cache configuration (ttl/count) and recreate the caches on demand to prevent being tied to internal cache implementation/api changes.

      config.xml
        <securityRealm class="hudson.plugins.active_directory.ActiveDirectorySecurityRealm" plugin="active-directory@1.47">
          <domain>internal.local</domain>
          <bindName>binduser</bindName>
          <bindPassword>somevalue</bindPassword>
          <server>someServer:3268</server>
          <groupLookupStrategy>RECURSIVE</groupLookupStrategy>
          <removeIrrelevantGroups>false</removeIrrelevantGroups>
          <cache>
            <size>256</size>
            <ttl>30</ttl>
            <userCache class="com.google.common.cache.LocalCache$LocalManualCache" resolves-to="com.google.common.cache.LocalCache$ManualSerializationProxy">
              <keyStrength>STRONG</keyStrength>
              <valueStrength>STRONG</valueStrength>
              <keyEquivalence class="com.google.common.base.Equivalences$Equals"/>
              <valueEquivalence class="com.google.common.base.Equivalences$Equals" reference="../keyEquivalence"/>
              <expireAfterWriteNanos>30000000000</expireAfterWriteNanos>
              <expireAfterAccessNanos>0</expireAfterAccessNanos>
              <maxWeight>256</maxWeight>
              <weigher class="com.google.common.cache.CacheBuilder$OneWeigher">INSTANCE</weigher>
              <concurrencyLevel>4</concurrencyLevel>
              <removalListener class="com.google.common.cache.CacheBuilder$NullListener">INSTANCE</removalListener>
            </userCache>
            <groupCache class="com.google.common.cache.LocalCache$LocalManualCache" resolves-to="com.google.common.cache.LocalCache$ManualSerializationProxy">
              <keyStrength>STRONG</keyStrength>
              <valueStrength>STRONG</valueStrength>
              <keyEquivalence class="com.google.common.base.Equivalences$Equals" reference="../../userCache/keyEquivalence"/>
              <valueEquivalence class="com.google.common.base.Equivalences$Equals" reference="../../userCache/keyEquivalence"/>
              <expireAfterWriteNanos>30000000000</expireAfterWriteNanos>
              <expireAfterAccessNanos>0</expireAfterAccessNanos>
              <maxWeight>256</maxWeight>
              <weigher class="com.google.common.cache.CacheBuilder$OneWeigher">INSTANCE</weigher>
              <concurrencyLevel>4</concurrencyLevel>
              <removalListener class="com.google.common.cache.CacheBuilder$NullListener">INSTANCE</removalListener>
            </groupCache>
          </cache>
        </securityRealm>
      

            fbelzunc FĂ©lix Belzunce Arcos
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: