0

これには間違いなく専門家の助けが必要です!これは主にSpring Securityの質問だと思いますが、よくわからないので、一般的なSpringタグでもタグ付けしています!

Application Context がロードされると (私の場合はすべて Java Config 経由ですが、それは問題ではないと思います)、「DefaultListableBeanFactory」が処理され、最終的に (ProxyFactory 経由で) Spring Security Advisors が追加されます。承認が必要なアクセス許可があるため、Spring Beans がある場合、これは素晴らしいことです。

私の質問は、これらのクラスが Spring Bean である必要がなくなった場合、どうすれば同じ効果を得ることができるでしょうか? 別の言い方をすれば、Java Config を介してシングルトン Bean として作成されたオブジェクト インスタンスがあり、承認が正しく機能している場合、オブジェクト インスタンスが POJO である状態を維持することは可能ですか? 繰り返しになりますが、専門家向けに、JdkDynamicAopProxy で返されるインターセプト チェーンに Spring Security インターセプターを含めてほしいと思います。

そして「いいえ」、私はこれに対する答えを本当に期待していません。

4

1 に答える 1

3

spring コンテナーによってインスタンス化されていない Bean にセキュリティ インターセプターを追加するには、global-securityタグをモードに切り替えて、aspecj モジュールでaspectj提供されるものを織ります。AnnotationSecurityAspect

2番目の質問については、次のいずれかを行いたいと思います。

  • a を使用しProxyFactoryBeanて Bean を保護します。

  • プログラムによるセキュリティ プロキシの作成:ProxyFactory.addAdvice()メソッドを使用します。

  • によって作成されたすべてのプロキシにセキュリティ インターセプターを追加しますAutoProxyCreator。これは通常は必要ありませんが、AbstractAutoProxyCreator.interceptorNamesプロパティを使用して一般的なインターセプターを追加できます。global-securityタグ パーサーは の生成された名前を使用するため、MethodSecurityInterceptorインターセプターを手動で構成し、一貫した を設定する必要がありますSecurityMetadataSource

于 2013-05-02T11:25:58.470 に答える