我有一个使用Spring Security插件的Grails应用程序,并使用grails.plugin.springsecurity.controllerAnnotations.staticRules
作为安全规则。
部分应用程序是一个基本知识库,它只包含标题和详细信息。详细信息部分使用CKEditor插件,该插件适用于文本,链接和一般格式,没有问题,但我无法使图像上传和浏览功能起作用。我得到了#34;抱歉,您无权查看此页面。"什么时候我尝试上传或浏览服务器来查找图像。
我将上传目录设置为默认/ uploads /,我的CKEditor配置如下所示:
ckeditor {
config = "/js/myckconfig.js"
skipAllowedItemsCheck = false
defaultFileBrowser = "ofm"
upload {
basedir = "/uploads/"
overwrite = false
link {
browser = true
upload = true
allowed = []
denied = ['html', 'htm', 'php', 'php2', 'php3', 'php4', 'php5',
'phtml', 'pwml', 'inc', 'asp', 'aspx', 'ascx', 'jsp',
'cfm', 'cfc', 'pl', 'bat', 'exe', 'com', 'dll', 'vbs', 'js', 'reg',
'cgi', 'htaccess', 'asis', 'sh', 'shtml', 'shtm', 'phtm']
}
image {
browser = true
upload = true
allowed = ['jpg', 'gif', 'jpeg', 'png']
denied = []
}
flash {
browser = false
upload = false
allowed = ['swf']
denied = []
}
}
}
我假设Spring Security阻止访问,所以我尝试将/ uploads /目录添加到Config.groovy中的静态规则中,以便该部分看起来像这样
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/': ['permitAll'],
'/index': ['permitAll'],
'/index.gsp': ['permitAll'],
'/assets/**': ['permitAll'],
'/**/js/**': ['permitAll'],
'/**/css/**': ['permitAll'],
'/**/images/**': ['permitAll'],
'/**/favicon.ico': ['permitAll'],
'/**/jasper/**': ['permitAll'],
'/jasper/**': ['permitAll'],
'/**/uploads/**': ['permitAll'],
'**/ck/ofm/filemanager/**': ['permitAll'],
'**/ck/ofm/filetree/**': ['permitAll'],
'/**/reports/**': ['permitAll']
我已经尝试过/ uploads /和/ ** / uploads /的每个变体,我都能想到。
我无法通过网址直接访问uploads目录或其中的测试图像,但我可以在/ images /目录中执行此操作。出于这个原因,我试过将uploads目录设置为/ images /目录,但我仍然得到相同的访问权限。
我已经搜索了答案,而我发现的最近的帖子是this one,但这是一个与我不同的问题,并没有提供解决方案。
答案 0 :(得分:1)
我遇到了同样的问题。尝试将此网址添加到您的列表中:
'/ck/**': ['permitAll']
(实际上我不建议允许完全访问此网址,除非您希望任何人都能够访问CKEditor功能。)
答案 1 :(得分:0)
我认为您在尝试上传图片时遇到的邮件请求存在问题。
ofm.gsp中的configUrl传递类型而viewMode为null因为该文件没有上传到相应的文件夹..
configUrl ="?/ YourApp / CK / OFM /配置fileConnector = / YourApp / CK / OFM /文件管理器&安培;类型=图片&安培; VIEWMODE =网格&#34 ;;