Skip to main content
QUICK REVIEW

[论文解读] Stronger Enforcement of Security Using AOP and Spring AOP

Kotrappa Sirbi, Prakash Kulkarni|arXiv (Cornell University)|Jun 23, 2010
Advanced Software Engineering Methodologies参考文献 1被引用 5
一句话总结

本文提出使用面向切面编程(AOP),特别是AspectJ和Spring AOP,通过模块化访问控制和信息分类等横切关注点,来增强面向对象应用程序中的安全策略强制执行。通过在编译时(AspectJ)和运行时(Spring AOP)将安全方面织入应用程序,该方法减少了代码纠缠和分散,实现了更一致、可重用且可强制执行的安全策略,其中Spring AOP在运行时强制执行方面优于传统OOP或基础AOP方法。

ABSTRACT

An application security has two primary goals: first, it is intended to prevent unauthorised personnel from accessing information at higher classification than their authorisation. Second, it is intended to prevent personnel from declassifying information. Using an object oriented approach to implementing application security results not only with the problem of code scattering and code tangling, but also results in weaker enforcement of security. This weaker enforcement of security could be due to the inherent design of the system or due to a programming error. Aspect Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. The goal of the paper is to present that Aspect Oriented Programming AspectJ integrated with Spring AOP provides very powerful mechanisms for stronger enforcement of security.Aspect-oriented programming (AOP) allows weaving a security aspect into an application providing additional security functionality or introducing completely new security mechanisms.Implementation of security with AOP is a flexible method to develop separated, extensible and reusable pieces of code called aspects.In this comparative study paper, we argue that Spring AOP provides stronger enforcement of security than AspectJ.We have shown both Spring AOP and AspectJ strive to provide a comprehensive AOP solutions and complements each other.

研究动机与目标

  • 解决传统OOP在强制执行安全策略时因代码分散和纠缠带来的局限性。
  • 研究AOP如何模块化访问控制和数据分类等安全关注点。
  • 比较AspectJ和Spring AOP在比传统OOP更稳健地强制执行安全策略方面的有效性。
  • 证明基于AOP的安全策略强制执行可带来更易维护、可扩展且一致的安全机制。

提出的方法

  • 通过编译时织入将AspectJ集成到应用程序代码库中,以织入安全方面。
  • 使用Spring AOP通过代理在运行时织入安全逻辑,实现动态安全检查。
  • 定义封装授权和去分类控制逻辑的安全方面,作为可重用模块。
  • 应用切点以定位需要安全检查的特定方法或类。
  • 利用AOP的单一职责原则,将安全逻辑与业务逻辑隔离,降低耦合度。
  • 通过在真实应用场景中对比Spring AOP与AspectJ在安全策略强制执行强度方面的表现,评估该方法。

实验结果

研究问题

  • RQ1与传统OOP方法相比,AOP在提升安全策略强制执行的模块化和可维护性方面有何改进?
  • RQ2AspectJ和Spring AOP在多大程度上可用于强制执行强制性访问控制并防止信息去分类?
  • RQ3编译时(AspectJ)与运行时(Spring AOP)织入机制在安全策略强制执行强度上存在哪些差异?
  • RQ4能否在不修改核心业务逻辑的前提下,利用AOP使安全策略更具可重用性和可插拔性?
  • RQ5AOP如何减轻面向对象系统中因编程错误而削弱安全策略强制执行的风险?

主要发现

  • AOP通过将安全逻辑封装到专用方面,显著减少了代码分散和纠缠,提升了代码清晰度和可维护性。
  • 与传统OOP和基础AOP方法相比,Spring AOP在运行时提供了更强的安全策略强制执行能力。
  • AOP的单一职责原则使访问控制和分类策略的实现更加一致且可重用。
  • 安全方面可在不修改现有业务逻辑的前提下织入应用程序,从而促进可扩展性和模块化。
  • AspectJ与Spring AOP的集成提供了一个全面的解决方案,两者在不同部署场景下相互补充。
  • 对比研究证实,基于AOP的安全策略强制执行比单体式OOP实现更稳健且更少出错。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。