2

特定のクラスで AOP プロキシを防止できますか?

たとえばglobal-method-security、Spring Security から使用する場合。この場合、注釈付きのほとんどの Bean をプロキシする必要があります。しかし、一部の Bean では、特定の特別なセマンティクスを持つカスタム プロキシを既に使用しています。

どんなアイデアでも大歓迎です!

4

1 に答える 1

1

それを行う簡単な方法はないと思います。

2 つのオプションが表示されます。

  • メソッドを拡張SecuredAnnotationSecurityMetadataSourceしてオーバーライドしますfindAttributes()。次に、属性を使用secured-annotationして独自の無効化と有効化を行います。(より単純ですが、春のセキュリティでのみ動作します)SecuredAnnotationSecurityMetadataSourcemetadata-source-ref

  • 他の(より一般的な)方法は、メソッドをオーバーライドし、Spring Security によって登録された Bean 定義のメソッドを使用して独自のメソッドを設定することshouldSkip()です。このアプローチでは、最終的にどの実装を使用するかについて注意する必要があります ( 、または)AbstractAutoProxyCreatorAutoproxyCreatorBeanFactoryPostProcessorsetBeanClassName()AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAMEAutoProxyCreatorInfrastructureAdvisorAutoProxyCreatorAspectJAwareAdvisorAutoProxyCreatorAnnotationAwareAspectJAutoProxyCreator

于 2013-04-16T09:00:32.703 に答える