shiro 是一个安全框架 有认证和授权 加密 会话管理等功能.
内置9个过滤器用于对数据进行过滤 (anon,authc,prem)
如何使用:步骤1:导入jar包(4个分别为shiro-web,spring,aspject,core)
步骤2:导入配置文件:application_shiro.xml(配置核心组件,安全管理器等)
/error.html = anon /login_*=anon /goodstype.html=perms["商品类型管理"] /orders.html=perms["新增管理","审核管理","确认管理","入库管理","订单管理","销售订单新增","销售订单出库"] /orders_add.action= perms["新增管理","销售订单新增"] /orders_doCheck.action=perms["审核管理"] /orders_doStart.action=perms["确认管理"] /orderdetail_doOutStore.action=perms["销售订单出库"] /orderdetail_doInStore.action=perms["入库管理"] /goodstype_*=perms["商品类型管理"] public class ErpRealm extends AuthorizingRealm{ // 注入empbiz 用于获取用户名和密码I private IEmpBiz empBiz; private IMenuBiz menuBiz; public void setMenuBiz(IMenuBiz menuBiz) { this.menuBiz = menuBiz; } public void setEmpBiz(IEmpBiz empBiz) { this.empBiz = empBiz; } @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // TODO Auto-generated method stub System.out.println("授权方法"); // 在授权方法中对用户的权限 进行授权 // 步骤1:获得当前的用户信息 Emp emp = (Emp) principals.getPrimaryPrincipal(); // 步骤2:获取菜单集合 List
重写之后将其配置到shiro中.见applicatioon-shiro图
之后可以通过
SecurityUtils.getSubject().getPrincipal();来得到用户名 用于页面返回.
可以调用subject 的logout来退出登录.
需要重写 对应的realm中的方法 配置核心配置文件中数据
分为三块 1:粗颗粒 2:细颗粒
1粗颗粒经常用于url 对网址进行授权 但是如果多个功能使用了同一个页面,就需要使用细颗粒 包括两种一:对方法的 2:对代码的. 需要进行对应的prem配置



