论文部分内容阅读
近年来,随着互联网技术,Java技术和REST软件架构的发展,在Java Web领域主要存在两种应用形式:传统Web网页应用和RESTful API,REST以其简洁的风格,可伸缩性好,松耦合的特点得到了互联网企业的青睐,并广泛应用于分布式,微服务架构和移动应用,目前的主流的Java安全框架对传统Web网页应用的认证和基于角色的访问控制模型有很好的支持,但对RESTful API的认证,授权和审计缺乏相应的支持,无法满足RESTful API的认证需求,并且基于角色的访问控制模型控制粒度太大,无法动态对某个资源实现控制,不适合RESTful应用。针对现在Java安全框架存在的问题,本文在现有Java安全框架Spring Security的基础上,研究并设计了一种面向Java Web的3A安全框架。Spring Security对传统Web网页认证授权已经提供了良好的支持,本框架着重对RESTful API提供认证支持以及提供细粒度,动态的访问控制和便捷的审计解决方案。本文首先介绍了现有Java安全框架和RESTful API安全的发展现状以及存在的问题。接着介绍了框架设计相关的一些关键技术,简要介绍了Spring Security对Web页面应用的支持,着重介绍了RESTful API的认证和授权技术,阐述了框架使用这些技术的原因。然后介绍了框架的总体设计思路以及对Spring Security框架的修改,最后介绍了框架内每个模块的具体实现和框架的应用案例。框架的认证模块采用JSON Web Token认证方式,结合Spring Security的过滤器机制和内置认证模式实现,访问控制系统采用RestACL访问控制语言,因为过滤器机制只能实现粗略的鉴权,所以访问控制系统还采用了AOP加强了细粒度鉴权。使用Spring AOP机制实现审计功能,框架为RESTful API的认证,授权,审计提供了完整的解决方案。总体上,框架基于Spring Security框架,修改了Spring Security框架的认证和访问控制系统,使其支持适合RESTful应用的认证方式和访问控制模型,将JSON Web Token整合到框架的认证中,通过设计访问控制系统,实现RestACL的访问控制策略,策略评估,策略配置,将Rest ACL访问控制语言与框架集成到一起;为RESTful应用的访问控制提供统一的,便捷的解决方案。