Есть ли обходной путь для проблемы привязки свойств OGNL3.0.21 для таких свойств, как fName (Struts2 Issue-WW-4616)? - PullRequest
0 голосов
/ 14 февраля 2019

Недавно мы должны были перейти с 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;
} 

Я нашел следующие решения:

  1. Изменение имени переменной или метода получения и установки, что является очень большим изменением для нашего приложения.
  2. возвращаясь к 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
    

ЭтоЭто очень большое изменение в нашем приложении, чтобы изменить такие свойства имя или геттер и сеттер.Поэтому я ищу обходной путь.

...