Недавно мы должны были перейти с Struts-2.3.20 на Struts-2.3.37 из-за уязвимостей в безопасности.Таким образом, мы обновили ognl-3.0.6 до ognl-3.0.21, у которого есть проблема WW-4616 .Из-за этого многие свойства нашего приложения не устанавливаются перехватчиком params.Такие свойства, как fName, sModuleName не устанавливаются в классах действий.Я проверил ссылки jira, но не смог найти решение или обходной путь для того же.Ниже приведен пример кода, который не работает
private String sModuleName;
public String getSModuleName() {
return sModuleName;
}
public void setSModuleName(final String moduleName) {
sModuleName = moduleName;
}
Я нашел следующие решения:
- Изменение имени переменной или метода получения и установки, что является очень большим изменением для нашего приложения.
возвращаясь к ognl-3.0.6 с Struts-2.3.37, это не работает, это дает мне следующую ошибку
<Feb 13, 2019 2:27:56 PM EST> <Error> <HTTP> <BEA-101165> <Could not load user defined filter in web.xml: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.
java.lang.NoSuchMethodError: ognl.SimpleNode.isSequence(Lognl/OgnlContext;)Z
at com.opensymphony.xwork2.ognl.OgnlUtil.isEvalExpression(OgnlUtil.java:356)
at com.opensymphony.xwork2.ognl.OgnlUtil.checkEnableEvalExpression(OgnlUtil.java:467)
at com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecute(OgnlUtil.java:422)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:334)
at com.opensymphony.xwork2.ognl.OgnlUtil.internalSetProperty(OgnlUtil.java:663)
Truncated. see log file for complete stacktrace
ЭтоЭто очень большое изменение в нашем приложении, чтобы изменить такие свойства имя или геттер и сеттер.Поэтому я ищу обходной путь.