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路径的权限                  

               }

 

posted @ 2016-08-17 14:47  江城印象  阅读(849)  评论(0编辑  收藏  举报