在myeclipse上部署项目,遇到如下问题:
错误描述:
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>
分享到:
相关推荐
首先,Spring Security的核心功能包括身份验证、授权、会话管理以及CSRF防护等。在多页面登录场景下,框架允许开发者根据不同的用户角色或应用场景定义不同的登录入口。这通常通过配置`http`元素和自定义`...
- 明白CSRF攻击原理,了解SpringSecurity的默认CSRF保护机制。 - 如何禁用或自定义CSRF保护。 7. **异常处理**: - 自定义登录失败处理器和未授权、未认证异常的处理。 8. **Remember Me功能**: - 开启并理解...
**Spring Security新手入门级Maven实例...随着对Spring Security的深入学习,你将能够实现更复杂的场景,如OAuth2集成、记住我功能、CSRF防护、基于URL的访问控制等。不断实践和探索,你将成为Spring Security的专家。
Spring Security 是一个强大的Java安全框架,它为Web和企业应用程序提供了全面的安全解决方案。在这个主题“spring security ajax请求与html共存”中,我们将探讨如何在使用Spring Security的同时处理Ajax(异步...
总结来说,Spring Security 是一个强大的安全管理框架,提供了一整套解决方案来保护你的应用程序。它通过配置文件定义安全策略,确保只有合法的用户能够访问特定的资源,同时提供了丰富的扩展点,可以适应各种复杂的...
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/> <csrf disabled="true" /> <!-- 如果不使用CSRF保护,可以注释或删除此行 --> ...
error: function(error) { // 处理错误响应 } }); ``` 请注意,这里设置了`contentType`为`'application/json; charset=utf-8'`,以便Django能够正确解析JSON数据。 **四、CSRF攻击原理及防御措施** CSRF攻击...
Spring Security 是一个强大的安全框架,它为Java应用程序提供了全面的安全管理解决方案。在本文档中,我们将探讨如何进行Spring Security的简易配置,以确保你的应用在Spring框架下得到有效的安全保护。 首先,你...
`auto-config="true"`会自动配置一些基本的安全设置,如CSRF防护和默认的登录页面。 2. `<form-login>`元素:用于定制登录页面的行为。例如: ```xml authentication-failure-url="/login?error" default-...
<form-login login-page="/login" default-target-url="/welcome" authentication-failure-url="/login?error" /> <!-- enable csrf protection --> <csrf/> ``` 这段配置声明了所有以`/admin/`开头的URL需要...
Spring Security 是一个功能强大的安全框架,为基于 Java 的应用程序提供了全面的安全解决方案。它不仅仅限于提供认证(authentication)和授权(authorization),还包括了诸如加密、登录与注销支持、会话管理、...
<form-login login-page="/login" default-target-url="/home" authentication-failure-url="/login?error" /> <csrf disabled="true" /> <!-- 可根据需求启用或禁用CSRF保护 --> users-by-username-...
error: function() { // 处理登录失败的逻辑 } }); }); ``` 在后端,我们处理这个POST请求,验证用户名和密码,然后生成JWT并返回给前端。前端收到JWT后,可以将其存储在本地,之后每次请求资源时都附带此...
.exceptionHandling().authenticationEntryPoint((request, response, exception) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED)); } ``` 在这里,`jwtAuthenticationFilter`是一个自定义过滤器,...
- **错误处理**:Ajax请求中应包含错误处理逻辑,如`error`回调函数,确保数据交互的稳定性。 在这个项目中,开发者可能通过Spring Boot的RESTful API接口,利用Spring Security进行权限控制,JPA处理数据库操作,...
例如,如果页面显示“CSRF Security Error”,这可能是因为安全设置问题,需要检查Tomcat的web.xml文件,确保正确配置了CSRF防护。通常,可以通过调整或禁用相关过滤器来解决此类问题。 总结,配置Apache和Tomcat的...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,包括认证和授权。在这个场景中,我们将探讨如何使用Spring Security来实现登录和权限角色控制。首先,确保你正在使用的Spring版本为4.3.2....
验证码是登录系统中常见的需求,网上也有非常成熟的解决方案。为了在 Spring Security 框架中实现这个功能,我们需要准备验证码和在登录页面中添加验证码输入框。 验证码的生成 验证码的生成是登录添加验证码的...
7. **CSRF 保护**:Spring Security 自动提供了跨站请求伪造(CSRF)防护,确保只有来自信任源的请求才能修改用户数据。确保在表单中添加 CSRF 令牌,并在服务器端验证。 通过以上步骤,你就可以创建一个与应用程序...