Spring Security 整合 UM Editor遇到的问题
2016-03-31 11:14
369 查看
写这篇文章的初衷,是为了帮助需要整合UMEditor到项目中,并且项目又用到了Spring Security的情况
这里主要阐述遇到的问题和解决的办法,希望对大家有参考价值,主要是对图片上传这块
1. X-Frame-Options:DENY的问题
后果:导致UMEditor无发提交上传图片的请求
解决方案:在Spring Security configure 类中加入:
protected void configure(HttpSecurity http) throws Exception {
http.headers()
.addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN));
}
2.CSRF_TOKEN取不到的问题
后果:导致无法请求到服务端,Spring Security会在请求中加入CSRF_TOKEN, 如果没有,则会被服务端拒绝,报403错误
解决办法:(1)disable掉CSRF, 在configure类中加入
http.csrf().disable();
(2)修改UMEditor的image.js , 在动态创建提交image的form代码中加入
'<input type="hidden" name="_csrf" id="csrf" />'
之后再把token的值通过js代码设置进去:$('#csrf').val(token);
3. 上传图片一直失败的问题
后果:上传图片即使保存到后端,但是界面一直提示上传失败
解决办法:导致上传失败的问题可能是UMEditor的一个bug,在image.js找到如下代码
var json = eval('('+r+')');
Base.callback(me.editor, me.dialog, json.url, json.state);
在变了r中包含了<pre>标签,导致无法被转换成json,将代码改为
r=r.replace("<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">", "").replace("</pre>", "");
var json = eval('('+r+')');
Base.callback(me.editor, me.dialog, json.url, json.state);
主要遇到的问题就这么多,如果有更好的解决方案,希望大家能提出来
最后在说下上传保存路径的问题,如果使用UMEditor自己的imageUp.jsp,将只能保存到工程目录下,如果想保存到其他地方,还是考虑上传时跳转到自己定义的Controller比较好,上传的URL可以在umeditor.config.js中修改imageUrl。
这里主要阐述遇到的问题和解决的办法,希望对大家有参考价值,主要是对图片上传这块
1. X-Frame-Options:DENY的问题
后果:导致UMEditor无发提交上传图片的请求
解决方案:在Spring Security configure 类中加入:
protected void configure(HttpSecurity http) throws Exception {
http.headers()
.addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN));
}
2.CSRF_TOKEN取不到的问题
后果:导致无法请求到服务端,Spring Security会在请求中加入CSRF_TOKEN, 如果没有,则会被服务端拒绝,报403错误
解决办法:(1)disable掉CSRF, 在configure类中加入
http.csrf().disable();
(2)修改UMEditor的image.js , 在动态创建提交image的form代码中加入
'<input type="hidden" name="_csrf" id="csrf" />'
之后再把token的值通过js代码设置进去:$('#csrf').val(token);
3. 上传图片一直失败的问题
后果:上传图片即使保存到后端,但是界面一直提示上传失败
解决办法:导致上传失败的问题可能是UMEditor的一个bug,在image.js找到如下代码
var json = eval('('+r+')');
Base.callback(me.editor, me.dialog, json.url, json.state);
在变了r中包含了<pre>标签,导致无法被转换成json,将代码改为
r=r.replace("<pre style=\"word-wrap: break-word; white-space: pre-wrap;\">", "").replace("</pre>", "");
var json = eval('('+r+')');
Base.callback(me.editor, me.dialog, json.url, json.state);
主要遇到的问题就这么多,如果有更好的解决方案,希望大家能提出来
最后在说下上传保存路径的问题,如果使用UMEditor自己的imageUp.jsp,将只能保存到工程目录下,如果想保存到其他地方,还是考虑上传时跳转到自己定义的Controller比较好,上传的URL可以在umeditor.config.js中修改imageUrl。
相关文章推荐
- 跨站请求伪造 (CSRF)
- win2k3SP2,VS2005SP1,SQL2005SP2整合方法分析小结第1/3页
- FCKEditor SyntaxHighlighter整合实现代码高亮显示
- 切记ajax中要带上AntiForgeryToken防止CSRF攻击
- struts2 spring整合fieldError问题
- 将CKfinder整合进CKEditor3.0的新方法
- php与paypal整合方法
- 基于jquery实现可定制的web在线富文本编辑器附源码下载
- Google Map Api和GOOGLE Search Api整合实现代码
- Apache和Tomcat服务器间的区别、联系、整合详细介绍
- ThinkPHP整合百度Ueditor图文教程
- 19款Javascript富文本网页编辑器
- Angularjs整合微信UI(weui)
- 浅析mybatis和spring整合的实现过程
- Spring与Mybatis的整合方法有哪些
- 09. Laravel 4 表单
- CSRF漏洞之验证referer
- Zk 与WebMap(Baidu,Soso,Arcgis)的整合应用
- oschina删除文章的csrf漏洞
- 基于Spring框架的Shiro配置