URL级别的权限控制
对权限控制代码进行优化:
主要对url路径的判断惊醒优化:
1、在src下创建配置文件user.properties admin.properties 在这两个文件中分别保存不同的角色具有的权限路径。
例如:admin.properties中url=/book_add,/book_delete,/book_update,/book_search
2、在过滤器中完成权限控制
1.在init方法中将配置文件中的信息读取出来分别保存到users,admins两个list集合中,
ResourceBundle.getBundle(String baseName);
admin.properties文件的baseName就是admin。
user.properties文件的baseName就是user。
得到ResourceBundle对象,可以通过他的getString(String name);
bundle.getString("url");//这就得到配置文件中名称叫url的值。
2.再判断就比较方便。
1、判断资源路径是否需要权限控制
//获取路径
String uri=request.getRequestURI();
String contextPath=request.getContextPath();
String path=uri.substring(contextPath.length());
if(admins.countains(path)||users.countains(path))
//此处的路径是访问的路径
如果包含访问路径,说明当访问这些资源的时候,就需要先判断用户是否登录。如果已经登录了,过滤器才能放行;否则告诉用户没有权限。
2、判断每一个角色是否可以访问资源路径
if(!users.countains(path)){
//说明users用户不具备访问该path路径的权限
}