`
frinder
  • 浏览: 38606 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DWR CSRF Security Error(tomcat7中会出现这个错误)

 
阅读更多

错误描述:

org.directwebremoting.dwrp.BaseDwrpHandler - A request has been denied as a potential CSRF attack.
org.directwebremoting.dwrp.BaseCallHandler - Exception while processing batch
java.lang.SecurityException: CSRF Security Error

at org.directwebremoting.dwrp.BaseDwrpHandler.checkNotCsrfAttack(BaseDwrpHandler.java:85)
at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:76)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process (Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------





解决办法:

修改 web.xml 中 DWR配置信息

原:

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>

加入跨域调用配置信息(红色部分),修改为:

<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.spring.DwrSpringServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</param-name>
<param-value>true</param-value>
</init-param>

</servlet>

分享到:
评论

相关推荐

    一个简单dwr的使用例子,tomcat数据库连接池

    这个例子展示了如何在Web应用程序中使用DWR与Tomcat数据库连接池来实现Ajax交互,从而实现实时的客户端-服务器通信。 首先,我们需要了解DWR的基本工作原理。DWR允许JavaScript在用户的浏览器中直接调用服务器端的...

    dwr error出错时拒绝方案

    解决这个问题,可以在 dwr.xml 配置文件中添加特殊的配置项,例如在 `&lt;allow&gt;` 节点内添加 converter 元素,可以将 Java 异常转换为 JavaScript 异常,从而提供详细的错误信息。例如: ```xml ``` 这可以将 ...

    DWR中文文档DWR

    DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器...通过深入学习这份DWR中文文档,开发者不仅可以掌握DWR的基本用法,还能了解到如何在实际项目中有效利用DWR提升Web应用的性能和用户体验。

    DWR2.0中文文档

    - **Integrating with Servlet Containers**:如何在Tomcat、Jetty等Servlet容器中部署和使用DWR。 - **Integration with MVC Frameworks**:如Spring、Struts等MVC框架的集成,提升开发效率。 5. **DWR的使用...

    DWR中文帮助文档(最好的DWR中文帮助文档)

    3. **DWR的API**:DWR提供了多种接口和类,如`Engine`、`Util`、`Ajax`等,这些API在文档中会有详尽的解释和示例。 4. **远程方法调用(Remote Method Invocation, RMI)**:DWR的主要功能之一就是让JavaScript能够...

    dwr3.0以及相关中文文档

    在这个版本中,DWR提供了更友好的API,增强了安全性,并支持更多的数据类型转换。 DWR的核心功能在于它能够自动处理JavaScript对象与Java对象之间的映射,这极大地简化了前端与后端的通信。通过DWR,开发者可以轻松...

    DWR中文文档 ,非常详细

    - **Security**:DWR提供安全配置,如IP白名单,防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 - **Performance**:优化技巧,如合并JavaScript文件,压缩HTTP响应,减少DOM操作等。 7. **示例与实践**: - ...

    DWR3.0.jar、DWR.war和DWR2.0中文说明文档

    这个压缩包包含了DWR的三个关键组件:DWR3.0.jar,DWR的实例war文件,以及DWR2.0的中文说明文档。以下是关于这些组件的详细知识: 1. **DWR3.0.jar**: DWR3.0.jar是DWR框架的核心库,包含所有必需的类和接口,...

    DWR中文文档

    7. **DWR的事件机制**:DWR提供了一套事件监听系统,允许你在特定的远程调用生命周期阶段添加回调函数,比如在调用开始、结束或者出现错误时。 8. **DWR与Spring框架集成**:DWR可以无缝集成到Spring框架中,使得...

    dwr示例代码,绝对好用

    要理解并运行这个示例,你需要设置一个支持Servlet的Web环境,比如Tomcat,并将DWR库添加到项目中。然后,部署和启动应用,通过浏览器访问相应的URL,查看示例的运行效果。在这个过程中,你可能需要学习和理解...

    DWR中文文档.pdfDWR中文文档.pdf

    这个“DWR中文文档.pdf”可能是对DWR的详细解释和使用指南,包括了DWR的基本概念、配置、API使用以及实际开发中的示例。 1. **DWR基本概念**:DWR的核心是远程方法调用(Remote Method Invocation,RMI),它允许...

    DWR2相关资料

    在这个"DWR2相关资料"的压缩包中,我们可能找到了一个完整的DWR2演示项目,这个项目是为在MyEclipse环境中部署而设计的。MyEclipse是一款强大的集成开发环境(IDE),特别适合于Java EE项目的开发,包括Web应用。 ...

    Dwr3.0 与 Dwr2.0 区别

    - 但对于高并发环境下的应用,可能会出现响应延迟等问题。 **DWR 3.0:** - 为了提高性能,3.0 版本做了大量的优化工作。 - 例如,通过对数据传输格式的改进,减少了网络传输的数据量,从而提高了响应速度。 - 同时...

    AJAX框架DWR简单应用

    7. **易于集成**:DWR可以轻松地与现有的MVC框架(如Spring MVC)集成,同时支持各种Web容器,如Tomcat、Jetty等。 在实际应用中,使用DWR的步骤通常包括以下几个阶段: 1. **配置DWR**:在Web应用的`web.xml`中...

    学习dwr的一个例子

    6. **回调和错误处理**:在JavaScript中,你需要定义回调函数来处理DWR调用的结果,以及可能出现的错误。DWR支持同步和异步两种调用模式。 7. **安全考虑**:DWR提供了安全性机制,如CSP(Content Security Policy...

    dwr视频教程

    3. **Security**:DWR通过一系列安全措施确保只有授权的代码才能在浏览器中运行,如使用白名单限制可访问的Java类,以及防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。 在这个“dwr视频教程1”中,你可能将学...

    dwr+spring实例

    通过这个例子,我们可以深入理解DWR和Spring如何协同工作,以及它们在实际开发中的应用场景。 首先,DWR的核心在于它的三个主要组件:`ClientProxy`、`AjaxEngine`和`Servlet`。`ClientProxy`允许JavaScript代码...

    较全面DWR包

    解压后的7个文件应该全部放入项目的`lib`目录,这是因为DWR是一个依赖于多个库的框架,这些库共同协作来提供其功能。仅仅包含`dwr.jar`是不够的,因为其他相关的JAR文件可能包含了如配置解析、HTTP通信、JSON转换等...

    DWR中文教程(外带DWR包)

    这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和实际应用。 首先,我们来了解一下DWR的核心功能。DWR允许前端JavaScript代码直接调用后端服务器的Java方法,就...

Global site tag (gtag.js) - Google Analytics