@@ -204,18 +204,19 @@ private class AppSecConfigChangesListener implements ProductListener {
204204 @ Override
205205 public void accept (ConfigKey configKey , byte [] content , PollingRateHinter pollingRateHinter )
206206 throws IOException {
207- final String key = configKey .toString ();
208207 if (content == null ) {
209208 remove (configKey , pollingRateHinter );
210209 return ;
211210 }
211+ final String key = configKey .toString ();
212212 Map <String , Object > contentMap =
213213 ADAPTER .fromJson (Okio .buffer (Okio .source (new ByteArrayInputStream (content ))));
214214 if (contentMap == null || contentMap .isEmpty ()) {
215215 ignoredConfigKeys .add (key );
216216 } else {
217217 ignoredConfigKeys .remove (key );
218218 try {
219+ beforeApply (key , contentMap );
219220 maybeInitializeDefaultConfig ();
220221 handleWafUpdateResultReport (key , contentMap );
221222 } catch (AppSecModule .AppSecModuleActivationException e ) {
@@ -234,6 +235,7 @@ public void remove(ConfigKey configKey, PollingRateHinter pollingRateHinter)
234235 try {
235236 maybeInitializeDefaultConfig ();
236237 wafBuilder .removeConfig (key );
238+ afterRemove (key );
237239 } catch (UnclassifiedWafException e ) {
238240 throw new RuntimeException (e );
239241 }
@@ -243,12 +245,15 @@ public void remove(ConfigKey configKey, PollingRateHinter pollingRateHinter)
243245 public void commit (PollingRateHinter pollingRateHinter ) {
244246 // no action needed
245247 }
248+
249+ protected void beforeApply (final String key , final Map <String , Object > contentMap ) {}
250+
251+ protected void afterRemove (final String key ) {}
246252 }
247253
248254 private class AppSecConfigChangesDDListener extends AppSecConfigChangesListener {
249255 @ Override
250- public void accept (ConfigKey configKey , byte [] content , PollingRateHinter pollingRateHinter )
251- throws IOException {
256+ protected void beforeApply (final String key , final Map <String , Object > config ) {
252257 if (defaultConfigActivated ) { // if we get any config, remove the default one
253258 log .debug ("Removing default config" );
254259 try {
@@ -258,15 +263,12 @@ public void accept(ConfigKey configKey, byte[] content, PollingRateHinter pollin
258263 }
259264 defaultConfigActivated = false ;
260265 }
261- usedDDWafConfigKeys .add (configKey .toString ());
262- super .accept (configKey , content , pollingRateHinter );
266+ usedDDWafConfigKeys .add (key );
263267 }
264268
265269 @ Override
266- public void remove (ConfigKey configKey , PollingRateHinter pollingRateHinter )
267- throws IOException {
268- super .remove (configKey , pollingRateHinter );
269- usedDDWafConfigKeys .remove (configKey .toString ());
270+ protected void afterRemove (final String key ) {
271+ usedDDWafConfigKeys .remove (key );
270272 }
271273 }
272274
0 commit comments