Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。相比较Spring Security,shiro有小巧、简单、易上手等的优点。
一、核心组件
1、Subject:用户主体(把操作交给SecurityManager),代表了当前用户的安全操作。
2、SecurityManager:安全管理器(关联Realm),管理所有用户的安全操作。它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
3、Realm:Shiro连接数据的桥梁(从数据库中获取数据),当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。进行登录验证等。
二、Shiro内置过滤器
anon:无需认证(登录)可以访问
authc:必须认证才可以访问
user:如果使用RememberMe的功能可以直接访问
perms:该资源必须得到资源权限才可以访问
role:该资源必须得到角色权限才可以访问