2017-09-05 6 views

答えて

1

はい、Spring Securityは内部的にAOPを使用します。たとえば、グローバルメソッドのセキュリティに使用されます。グローバルメソッドセキュリティは、特定のメソッド(サービスレイヤなど)にセキュリティチェックを適用するために使用されます。それはほとんどすべての行でAOPを言及

if (useAspectJ) { 
     BeanDefinitionBuilder aspect = 
      BeanDefinitionBuilder.rootBeanDefinition("org.springframework.security.access.intercept.aspectj.aspect.AnnotationSecurityAspect"); 
     aspect.setFactoryMethod("aspectOf"); 
     aspect.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); 
     aspect.addPropertyValue("securityInterceptor", interceptor); 
     String id = pc.getReaderContext().registerWithGeneratedName(aspect.getBeanDefinition()); 
     pc.registerBeanComponent(new BeanComponentDefinition(aspect.getBeanDefinition(), id)); 
    } else { 
     registerAdvisor(pc, interceptor, metadataSource, source, element.getAttribute(ATT_ADVICE_ORDER)); 
     AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(pc, element); 
    } 

あなたはグローバルメソッドのセキュリティに関連する春のセキュリティインフラストラクチャの一部であるGlobalMethodSecurityBeanDefinitionParserに次のコードを見つけることができます。グローバルメソッドのセキュリティ上の

詳しい情報は、例えば、ここにhttps://docs.spring.io/spring-security/site/docs/3.0.x/reference/ns-config.htmlここhttps://spring.io/blog/2013/07/04/spring-security-java-config-preview-method-security/

+0

GR8、見つけることができます。このランタイムは時間を織るか、コンパイルするのですか? – samshers

+0

プロキシベースのAOPは実行時です。 AspectJでは、実行時に織り方を使用することをお勧めします。それ以外の場合は、単純にXMLを変更して再コンパイルすることでSpringアプリケーションを再構成することはできません。 –

関連する問題