2012-02-16 13 views
2

Apache ShiroをSpring MVCで使用しようとしています。Spring MVC MultiActionControllerとApache Shiro

公開している(保護したい)コントローラはMultiActionControllerです。それは与えるものではありません...私は私のコントローラメソッドに@RequiresRolesのアノテーションを使用していたが、それは動作しません

http://shiro.apache.org/spring.html

:私は春用のApache史郎に彼らがここでそれを説明するように設定されている デバッグ時に見たログからのエラーは、AbstractController(MultiActionControllerのスーパークラス)のhandleRequestメソッドだけが注釈をチェックされているかのように見えます。

handleRequestから私の注釈付きメソッドへの "internal"呼び出しは、プロキシを介して呼び出されないため、Shiro注釈のチェックはありません。

呼び出し元と同じオブジェクトのメソッドへの呼び出しでも、私のメソッドの呼び出しを何とかプロキシ経由で行うことはできますか?

この問題の解決方法はありますか?あなたがコンパイル時や実行時の織りのためにAspectJを設定する必要があります事前

答えて

0

感謝。これは、私がSpringで知っている唯一の方法で、インターフェイスベースのプロキシではないインスタンスの注釈を強制することです。

史郎は、あなたがここにアイデアを見ることができAspectJのサンプルプロジェクトがあります。http://svn.apache.org/repos/asf/shiro/trunk/samples/aspectj/

また、ここでは、SpringのAOPとAspectJの統合について読む:http://static.springsource.org/spring/docs/3.1.0.RELEASE/reference/html/aop.html#aop-using-aspectj

+0

を私はコンパイル時の織りを使用:)ありがとうございましたし、すべて正常に動作します。 Btw、コンパイル時織りの代わりにロード時織りを使用する理由はありますか? –

+0

@Michałあなたがこの作業に時間を費やしたくないという唯一の理由があるかもしれません。いずれのアプローチでも問題ありません。 –

+0

春(MVC)コンテナの注釈を使用しているapache shiroの '1.2.0'はAspectJに依然依存しています。私たちはまだここで説明されているように、libフォルダにaspectj依存関係を追加する必要があります。http://stackoverflow.com/questions/7743749/shiro-authorization-permission-check-using-annotation-not-working#answer-8305355? –

関連する問題