Role-based access control (RBAC) in Java via proxy objects using annotations

  • Authors:
  • Jeff Zarnett;Mahesh Tripunitara;Patrick Lam

  • Affiliations:
  • University of Waterloo, Waterloo, ON, Canada;University of Waterloo, Waterloo, ON, Canada;University of Waterloo, Waterloo, ON, Canada

  • Venue:
  • Proceedings of the 15th ACM symposium on Access control models and technologies
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

We propose a new approach for applying Role-Based Access Control (RBAC) to methods in objects in the Java programming language. In our approach, a policy implementer (usually a developer) annotates methods, interfaces, and classes with roles. Our system automatically creates proxy objects which only contain methods to which a client is authorized access based on the role specifications. Potentially untrusted clients that use Remote Method Invocation (RMI) then receive proxy objects rather than the originals. We discuss the method annotation process, the semantics of annotations, how we derive proxy objects based on annotations, and how RMI clients invoke methods via proxy objects. We present the advantages to our approach, and distinguish it from existing approaches to method-granularity access control in Java. We demonstrate empirical evidence of the effectiveness of our approach by discussing its application to software projects that range from thousands to hundreds of thousands of lines of code.