一、重要概念
1、Subject,
访问系统的主体,可以是用户或者第三方程序;可以在程序的任意位置获取得到:
Subject current=SecurityUtils.getSubject();
2、SecurityManager
安全管理器,功能实现的核心,负责与认证器Authenticator、授权器Authorizer、缓存控制器CacheManager进行交互,实现subject委托的各项功能,
可以类比到springMVC中的DispartcherServlet前端控制器
3、Realm
连接器/外交官;手握系统程序的各种安全数据,用于数据验证比较,这个验证比较
由SecurityManager来调用完成,一般我们都需要自定义自己的Reanm,它可以通过
JDBC实现,也可以通过内存实现等等
4、认证流程
5、授权流程类似,需要通过认证才可执行授权
6、如何自定义Realm
1、继承AuthorizingRealm
2、覆盖三个方法
- getName
- doGetAuthenticationInfo 认证
- doGetAuthorizationInfo 授权