对于权限类的验证:验证用户菜单权限,url权限等的时候,
① 应该在用户登录的时候就获取该用户的所有权限集合存在session中,
② 然后可以在一个专门进行权限验证的类中(PermissionUtil ),获取该项目的全部权限集合,与之进行比对
③ 特别的,对于url类的验证,应在拦截器中调用权限类中的方法,菜单之类的可以在登录的时候调用验证的方法。
④ 权限验证的那个类中的方法和属性应该是静态的
@Component
public class PermissionUtil {
/*
* Spring确实能给对象属性注入值
* 但我们必须搞明白,什么是对象属性?非静态字段!!
* 静态字段属于类,不属于对象。
* 不信的话,大家可以创建一个Person类,设定两个字段 静态的age、非静态的name。
* 结果你debug观察person对象只能看到 name!
* */
private static IPermissionService permissionService;
//静态的类不能直注入,通过set方法注入
@Autowired
public void setPermissionService(IPermissionService permissionService) {
PermissionUtil.permissionService = permissionService;
}
public static boolean checkPermission(String function) {
}
权限简单流程:
获取该用户的所有权限------>获取该项目所有规定的权限----->两个对比
权限验证步骤
function是指权限表达式,格式为: 类的权限定类名+" : " + 方法名