一、当登陆在线的用户的角色的权限改变时处理:
1. 登陆时将用户的所有权限放入session之中:
2. 在filter中加入判断信息:动态去数据库查询当前用户的权限和session中的权限的集合大小进行比较,不一致,移除session中的旧权限,将新权限赋值给session;
3. 在页面需要进行权限判断的地方设置判断:当新权限表不存在某个菜单连接的时候,在页面点击的时候,会提示已经没有权限了;
4. 注意:在filter中注入service层,需要在spring的bean容器中进行注入: 之后在filter引用:
二、 当用户被类似管理员的用户更改了角色:需要提示用户角色已经改变,跳到登陆页面;
1.动态查询当前数据库中该用户的角色id和修改页面传来的角色id是否一致,如果不一致,设置relogin这个字段为1;数据库中relogin字段的值被设置为1;表示改变;
2.在filter中加入过滤监听:如果isrelogin为1,跳到登陆页面;
3.在登陆后台逻辑中:将relogin字段值设置为0:
5.流程如下:假设用户被修改了角色,它点击页面链接,经过filter判断退出系统重新跳到登陆页面,登陆时将relogin设置为0,然后以新的角色登陆到系统中。