`
Hnot_Yet
  • 浏览: 10556 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CKfinder for java详解一:权限配置

    博客分类:
  • java
阅读更多
【转自】CKfinder for java详解一:权限配置
友情链接:
1.解决Struts2下CKfinder无法使用的问题
2. CKfinder for java详解二:缩略图及图片上传的缩放

一直在采用CKfinder + CKeditor这两个黄金组合,技术联盟群里经常有人问我,JAVA版本的权限控制问题!其实这些问题官方都给出了很明细的解答,在这里我还是给各位做个详解吧!希望大家看到我的这篇文章对你有所帮助!
        大家一定知道使用JAVA版本的CKfinder需要有一个配置文件config.xml在我们的项目文件WEB-INF下,一般我们直接复制下载下来的 CKfinder解压包中的config.xml到项目WEB-INF下即可;我们只需要稍作修改即可!如何配置使用我就不在细说了,前面的日记里有教大家如何使用的!这次主要谈谈权限访问的配置:
在config.xml中我们可以看到<accessControls>标签,看英文我们就应该知道这里是访问控制的意思,下面我就来给大家演示一下使用方法!

我们举例:
目前我们的项目有三种级别的用户: 注册用户(RegUser) 、管理员(admin)、游客(User),游客我们是不允许对我们的相关文件有任何操作的我们先配置一个访问控制
<accessControl>
    <role>*</role>
    <resourceType>*</resourceType>
    <folder>/</folder>
    <folderView>true</folderView>
    <folderCreate>false</folderCreate>
    <folderRename>false</folderRename>
    <folderDelete>false</folderDelete>
    <fileView>true</fileView>
    <fileUpload>false</fileUpload>
    <fileRename>false</fileRename>
    <fileDelete>false</fileDelete>
</accessControl>

标签解释:
<role> --------用户 ,这里会跟我们java中的用户参数做对应;
<resourceType> ----------- 设置访问的文件资源,如果设置为IMAGES 那么代表只允许访问IMAGES类型;
<folderView> --------查看文件夹
<folder> ------------访问的文件夹;”/“ 代表所有目录,如果resourceType = IMAGES,folder = log,代表了只能访问IMAGES类型的log文件夹
<folderCreate> -------- 创建文件夹
<folderRename> -------重命名文件夹
<folderDelete> ------删除文件夹
<fileView> ------查看文件
<fileUpload> ------允许上传
<fileRename> ------重命名文件命
<fileDelete> ------删除文件



知道了上诉的标签的作用后我们就可以得知我们上述的控制限制了;仅仅是指文件夹的操作。它不限制文件夹的操作,使用户可以删除或重新命名文件夹,可以查看文件夹下的内容,但是不允许操作!

那么我们就可以根据这个权限设置来定义我们的用户权限了;

admin权限:
<accessControl>
    <role>admin</role>
    <resourceType>*</resourceType>
    <folder>/</folder>
    <folderView>true</folderView>
    <folderCreate>true</folderCreate>
    <folderRename>true</folderRename>
    <folderDelete>true</folderDelete>
    <fileView>true</fileView>
    <fileUpload>true</fileUpload>
    <fileRename>true</fileRename>
    <fileDelete>true</fileDelete>
</accessControl>

注册用户权限:
<accessControl>
    <role>RegUser</role>
    <resourceType>*</resourceType>
    <folder>/</folder>
    <folderView>true</folderView>
    <folderCreate>true</folderCreate>
    <folderRename>false</folderRename>
    <folderDelete>false</folderDelete>
    <fileView>true</fileView>
    <fileUpload>true</fileUpload>
    <fileRename>false</fileRename>
    <fileDelete>false</fileDelete>
</accessControl>

游客忽略.... 必然是没有任何权限的,全部为false;

那么我们如何使用我们的权限判断?假设我们现在用session记录用户信息,那么就可以
session.setAttribute("CKFinder_UserRole", "admin");   参数一是固定写法,因为我们配置文档已经有了
<userRoleSessionVar>CKFinder_UserRole</userRoleSessionVar>
这样一个配置,如需修改可以在此处修改;后面的参数对应我们配置的访问用户;就可以完成了admin的权限认证!

至此,本文介绍到此为止,希望能给大家帮助!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics