• Type: Improvement
    • Resolution: Fixed
    • Priority: Minor
    • 0.9.0
    • Affects Version/s: 0.9.0
    • Component/s: ymir-core
    • None

      Pageオブジェクトへのリクエストパラメータのinjection処理で、setterのうち次のものは対象外にするようにする。
      1. 引数がインタフェースもしくはインタフェースの配列のもの(s2の自動DI用だから)
      2. @Inアノテーションがついているもの(scopeからのインジェクション用だから)
      3. S2の@Bindアノテーションがついているもの(s2のDI用だから)
      4. @Protectedアノテーションがついているもの

      実際は1や3を対象外にするのは大変。そこで以下のように考える。
      1→どのみちbeanutilsで型の変換に失敗するのでほうっておく。ただ現状のYmirの実装では変換に失敗した時点で
       全てのパラメータのinjectionがスキップされてしまうので、失敗したものだけをスキップするように修正する。
      2→対象外にする。
      3→定数アノテーションなど全てをチェックするのが大変なので、対象外する。引数の型がリクエストパラメータを受け入れ
       可能な型である場合は@Protectedをつけてもらう。
      4→対象外にする。

          [YMIR-6] [ymir-core] リクエストパラメータのinjectionを制限できるようにする

          skirnir added a comment -

          対処しました。

          具体的には、

          1. 引数がインタフェースもしくはインタフェースの配列のもの(s2の自動DI用だから)
          2. @Inアノテーションがついているもの(scopeからのインジェクション用だから)
          3. S2の@Bindingアノテーションがついているもの(s2のDI用だから)
          4. @Protectedアノテーションがついているもの

          のうち1、2、3、4を対象外にするようにしました。

          skirnir added a comment - 対処しました。 具体的には、 1. 引数がインタフェースもしくはインタフェースの配列のもの(s2の自動DI用だから) 2. @Inアノテーションがついているもの(scopeからのインジェクション用だから) 3. S2の@Bindingアノテーションがついているもの(s2のDI用だから) 4. @Protectedアノテーションがついているもの のうち1、2、3、4を対象外にするようにしました。

            Assignee:
            skirnir
            Reporter:
            skirnir
            Votes:
            0 Vote for this issue
            Watchers:
            Start watching this issue

              Created:
              Updated:
              Resolved: