项目中用到很多框架,这里一一将为什么将其引入写出来,方便新手理解。
在项目中,用到了 Shiro,刚刚使用它只是用他做URL拦截,那么权限管理应该有更好的方案,不只是URL拦截这么简单。
shiro 的安全,围绕着 2点来, 1 是 角色 2是权限
我们通常是角色对应一组权限,他这边不是的。
我们系统中角色不是固定的,但是权限是固定的,比如 角色允许动态去创建,因此我们只可以拿权限来判断
比如 useraction 里面的add 方法 我可以通过 一个注解 参数为 user:add 代表 shiro 维护的当前请求用户的 这个人只要有 user:add 就可以了。
比如 useraction 里面有一个 findbean (获取一个bean的信息) 又有一个listdata(获取列表数据) 他们都是查看权限 他们的注解加入同一个 user:see 就可以了
如果用传统的url拦截我们需要给 findbean 和 listdata 各配置一个url权限(他们是不同的url),很显然用shiro 去做这件事更方便一些。
另外,比较好的就是shiro 自带了前台的标签
我们在列表页面 的添加按钮,动态判断是否有 user:add 这个权限,如果有才给他显示, 不用shiro 我们需要自己写一个标签,现在shiro 自带标签。
目前用到这些,不完善的欢迎大家指正