需求本篇博文基于SSM+Shiro实现用户权限管理系统,每位用户只可访问指定的页面,具体需求如下
用户账号的增删改查功能
权限包括: 系统模块 *** 作权限(system),财务模块 *** 作权限(finance),考勤模块 *** 作权限(checkon),
每个用户都可能拥有0或多个权限,在新增和编辑用户的时候,可以多选权限。
系统模块:包括用户账号管理功能。
财务模块:为了开发简化,只要做出静态的页面即可,不要真的有财务模块。
考勤模块:同财务模块。
效果图 功能细节- 技术栈: Maven+SSM+Shiro + Bootstarp
- *** 作者必须登录,且拥有system权限才可以访问system
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
//获取用户名
String username = (String) principalCollection.getPrimaryPrincipal();
//根据用户名获取用户对象
ShiroUser shiroUser = new ShiroUser();
shiroUser.setUsername(username);
ShiroUser user = shiroUserMapper.get(shiroUser);
//用户非空判断
if (user != null) {
//获取用户所对应的权限
UserPermission userPermission = new UserPermission();
userPermission.setUser_id(user.getNoid());
List
list = userPermissionMapper.list(userPermission); //List集合转为Set集合放入授权权限实例对象中 Set perms = new HashSet<>(); for (String s : list) { perms.add(s); } SimpleAuthorizationInfo authorizationInfo=new SimpleAuthorizationInfo(); authorizationInfo.addStringPermissions(perms); return authorizationInfo; } return null; } @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { String username = (String) authenticationToken.getPrincipal(); ShiroUser shiroUser = new ShiroUser(); shiroUser.setUsername(username); ShiroUser user = shiroUserMapper.get(shiroUser); if (user != null) { // 这一步就执行了对密码的验证 AuthenticationInfo authcInfo=new SimpleAuthenticationInfo(user.getUsername(),user.getUserpwd() , getName()); return authcInfo; } else { return null; } } } 核心配置文件applicationContent.xml
/loginPost=anon /system/*=user /finance/*=perms[finance] /checkon/*=perms[checkon] /logout.action=logout applicationContent.xml
/logout.action=logout
通用jsp,inc.jsp
<%--点击该链接,applicationContent.xml中配置的退出登录进行拦截, shiro内部实现退出登录并清空缓存 --%> 退出登录
启动项目命令mvn clean tomcat7:run
IDEA配置如图
建议采用DeBug方式启动
结语至此,基于Shiro+SSM+Bootstrap实现用户权限管理系统到此结束,通过本次项目练习,巩固了Shiro技术的理解,加强对Shiro技术的熟练使用,代码略微有些多,只要自己有耐心,努力,坚持的把本项目做完,相信你的技术一定会有一个质的飞跃,好啦,本周技术分享到此结束
都看到这里啦,确定不点赞嘛
若在本项目中遇到技术难题,可在下方评论区留言或私信我,授人以鱼不如授人以渔
百度网盘地址:链接: https://pan.baidu.com/s/1roBMawtBVkD41KlZmVPrcA 提取码: pmfu
如果你觉得博主写的不错的话,不妨给个一键三连,点击下方小拳头即可一键三连。
感谢你的支持!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)