[YMIR-6] [ymir-core] リクエストパラメータのinjectionを制限できるようにする Created: 2007-03-31  Updated: 2007-04-17  Resolved: 2007-04-17

Status: Closed
Project: Ymir
Component/s: ymir-core
Affects Version/s: 0.9.0
Fix Version/s: 0.9.0

Type: Improvement Priority: Minor
Reporter: skirnir Assignee: skirnir
Resolution: Fixed Votes: 0
Labels: None


 Description   

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→対象外にする。



 Comments   
Comment by skirnir [ 2007-04-17 ]

対処しました。

具体的には、

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

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

Generated at Tue Apr 15 21:36:15 JST 2025 using Jira 10.5.0#10050000-sha1:9d9d098bb7b67e8dba8da380ba9c3900d82ac3cf.