Struts で最近確認されたセキュリティの脆弱性のため、アプリケーションを struts バージョン 2.3.16 から 2.3.31 にアップグレードしています。
主な問題の 1 つは、Action クラスのゲッターとセッターの命名規則です。
例: String のインスタンス変数の場合aType
、Struts 2.3.16 で問題がなかった以前に使用されたセッターとゲッターを以下に示します。
public class ErrorMessageAction extends ActionSupport{
private String aType;
public String getAType() {
return aType;
}
public void setAType(String type) {
this.aType = type;
}
}
ただし、Struts 2.3.31 では、同じインスタンスに対する setter と getter の期待値は次の形式である必要があります。
public class ErrorMessageAction extends ActionSupport{
private String aType;
public String getaType() {
return aType;
}
public void setaType(String aType) {
this.aType = aType;
}
}
以下にリストされている 2.3.31 jar を適用した後に、この種の問題 (setter/getter 命名規則) が見つかったアクション クラスが多数あります。
commons-lang3-3.2.jar, commons-fileupload-1.3.2.jar,commons-io-2.2.jar
freemarker-2.3.22.jar, ognl-3.0.19.jar, struts2-core-2.3.31.jar
exwork-core-2.3.31.jar, commons-logging-1.1.3.jar, javassist-3.11.0.GA.jar
すべての Action クラスでセッター/ゲッターの変更を必要としない構成レベルでのソリューションを誰かが提案できますか?