Apche shiro是Java的常用安全框架之一,也是目前Java使用最多的安全框架。主要的核心功能包括:认证、授权、会话管理、加密。也提供了额外的功能支持在不同环境所关注的问题。例如:支持web的API、缓存、记住用户身份等。Apache shiro的功能结构图如下:
高层次概览
从Apche shiro 的高层次来看整个shiro 的内部结构可以概括如下:
用户通过shiro中Subject类实现介入shiro。而实例化Subject时,必须先实例化Subject对象中的SecurityManager对象;而所有对Subject对象的操作,实际内部是调用SecurityManager对象的同名方法,SecurityManager内部则是委托Realm接口实现类来完成相应的操作。因此shiro所有的对用户的认证和鉴权实际是realm来完成。
shiro的核心架构图如下:
可以发现SecurityManager是整个shiro的核心。所有的认证和授权都是交给基层的realm完成;会话管理则和SessionDao配合完成shiro的会话控制。
以上则是shiro的基本功能结构介绍,下一节聊聊shiro的如何完成用户认证。