import java.util.Objects;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.valves.ValveBase;
throw new IllegalStateException("Initialization error");
}
- FilterChain nextValveFilterChain = new FilterChain() {
- @Override
- public void doFilter(ServletRequest req, ServletResponse resp) throws IOException, ServletException {
- boolean reqEquals = Objects.equals(request, req);
- boolean respEquals = Objects.equals(response, resp);
- if (reqEquals == false || respEquals == false) {
- logger.error("Illegal change was detected by valve - request {} or " +
- "response {} was replaced by a filter. This is not supported by this valve",
- reqEquals, respEquals);
- throw new IllegalStateException("Request or response was replaced in a filter");
- }
- getNext().invoke(request, response);
+ FilterChain nextValveFilterChain = (req, resp) -> {
+ boolean reqEquals = Objects.equals(request, req);
+ boolean respEquals = Objects.equals(response, resp);
+ if (reqEquals == false || respEquals == false) {
+ logger.error("Illegal change was detected by valve - request {} or " +
+ "response {} was replaced by a filter. This is not supported by this valve",
+ reqEquals, respEquals);
+ throw new IllegalStateException("Request or response was replaced in a filter");
}
+ getNext().invoke(request, response);
};
filterProcessor.process(request, response, nextValveFilterChain);
}
/**
* Called by Tomcat when configurationFile attribute is set.
* @param fileName path to xml file containing valve configuration
- * @throws Exception
+ * @throws Exception exception
*/
public void setConfigurationFile(String fileName) throws Exception {
File configurationFile = new File(fileName);