Shiro权限框架2是BOS项目中重要的组成部分,用于实现系统的权限管理和身份验证。它包括了权限初始化、查询、角色管理和用户管理等核心功能。以下将详细阐述这些关键知识点:
1. 权限管理
- 初始化:权限数据作为系统运行的基础,需要在系统上线前通过SQL文件进行初始化,如设置在`auth_function`表中的数据。这通常是通过脚本批量插入数据,确保权限规则的正确配置。
- 查询:在功能页面,如`function.jsp`中,通过修改Datagrid的URL地址,调用`FunctionAction`的`list`方法,获取并显示所有权限数据,通常以JSON格式返回。
2. 角色管理
- 添加:角色添加功能涉及到修改Ajax请求地址,使其从数据库获取角色信息。同时,在`Function`类中添加`pId`属性和`get`方法,确保返回的JSON包含必要的字段,便于前端处理。
- 查询:角色列表页面通过修改Datagrid URL,调用`RoleAction`的`list`方法,展示所有的角色信息。
- 动态选择:在添加或编辑角色时,利用ZTree插件获取用户选择的角色节点,实现了角色树形结构的选择。
3. 用户管理
- 添加:在用户添加页面,增加了对角色的选择,以便关联用户的权限。同时,调整了保存按钮事件,确保数据正确提交。
- 保存操作:在`UserAction`中,提供`save`方法来处理用户信息的保存,可能涉及到User.hbm.xml中主键生成策略的更改,如采用UUID生成唯一标识。
- 配置:Struts.xml文件的配置有助于整合用户管理服务,确保请求能够正确路由到对应的Action。
4. 页面展示与缓存:
- Shiro框架提供了标签,用于在页面上根据用户的权限展示特定元素,例如系统左侧菜单只显示登录用户具备的权限项。
- 使用Ehcache缓存技术可以提高权限数据的读取性能,减少数据库查询次数。
5. 菜单动态生成:系统左侧菜单会根据用户的权限实时生成,这意味着只有登录用户有权限访问的菜单才会显示。
总结来说,Shiro权限框架2在BOS项目中扮演了关键角色,通过与数据库交互,实现了角色、用户权限的管理,并利用缓存和标签技术优化了用户体验。同时,Struts框架的集成也确保了权限管理流程的顺畅运行。