Skip to content

Commit 9382aa5

Browse files
committed
OnOfFilter retries init if filter enabled config is missing
1 parent 406727b commit 9382aa5

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

roda-ui/roda-wui/src/main/java/org/roda/wui/filter/OnOffFilter.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414
import java.util.Iterator;
1515
import java.util.List;
1616

17+
import org.apache.commons.configuration.Configuration;
18+
import org.apache.commons.lang3.StringUtils;
19+
import org.roda.core.RodaCoreFactory;
20+
import org.slf4j.Logger;
21+
import org.slf4j.LoggerFactory;
22+
1723
import jakarta.servlet.Filter;
1824
import jakarta.servlet.FilterChain;
1925
import jakarta.servlet.FilterConfig;
@@ -22,12 +28,6 @@
2228
import jakarta.servlet.ServletRequest;
2329
import jakarta.servlet.ServletResponse;
2430

25-
import org.apache.commons.configuration.Configuration;
26-
import org.apache.commons.lang3.StringUtils;
27-
import org.roda.core.RodaCoreFactory;
28-
import org.slf4j.Logger;
29-
import org.slf4j.LoggerFactory;
30-
3131
/**
3232
* A filter that can be turned on/off using RODA configuration file.
3333
*/
@@ -116,13 +116,14 @@ private boolean isConfigAvailable() {
116116
*/
117117
private void initInnerFilter() throws ServletException {
118118
final Configuration rodaConfig = RodaCoreFactory.getRodaConfiguration();
119-
if (rodaConfig == null) {
119+
final String innerFilterClass = this.webXmlFilterConfig.getInitParameter(PARAM_INNER_FILTER_CLASS);
120+
final String configPrefix = this.webXmlFilterConfig.getInitParameter(PARAM_CONFIG_PREFIX);
121+
final String configKey = configPrefix + ".enabled";
122+
if (rodaConfig == null || !rodaConfig.containsKey(configKey)) {
120123
LOGGER.info("RODA configuration not available yet. Delaying init of {}.",
121124
this.webXmlFilterConfig.getInitParameter(PARAM_INNER_FILTER_CLASS));
122125
} else {
123-
final String innerFilterClass = this.webXmlFilterConfig.getInitParameter(PARAM_INNER_FILTER_CLASS);
124-
final String configPrefix = this.webXmlFilterConfig.getInitParameter(PARAM_CONFIG_PREFIX);
125-
if (rodaConfig.getBoolean(configPrefix + ".enabled", false)) {
126+
if (rodaConfig.getBoolean(configKey, false)) {
126127
try {
127128
this.innerFilter = (Filter) Class.forName(innerFilterClass).newInstance();
128129
this.innerFilter.init(getFilterConfig());
@@ -134,8 +135,8 @@ private void initInnerFilter() throws ServletException {
134135
} else {
135136
this.isOn = false;
136137
}
138+
LOGGER.info("{} is {}", getFilterConfig().getFilterName(), (this.isOn ? "ON" : "OFF"));
137139
}
138-
LOGGER.info("{} is {}", getFilterConfig().getFilterName(), (this.isOn ? "ON" : "OFF"));
139140
}
140141

141142
/**

0 commit comments

Comments
 (0)