-
Bug
-
Resolution: Fixed
-
Minor
-
None
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>