SpringSecurity的如何拦截提交POST请求

从Spring Security3.2开始,默认就会启用CSRF攻击。 
  Spring Security通过一个同步token的方式来实现CSRF防护。它会拦截状态变化的请求并检查CSRF token。如果请求不包含CSRF token,或token不能与服务器端的token相匹配,请求将会失败,并抛出CsrfException。 

Spring Security已经简化了将token放到请求的属性中这一任务:

  • 使用JSP作为页面模板的话,要做的事非常类似:
<input type="hidden" name="${_csrf.parameterName}"  value="${_csrf.token}" />

       如果使用Spring表单绑定标签的话,标签会自动为我们添加隐藏的CSRF token标签。

例如一个用from表单提交一个post的请求,想要通过验证必须添加上:

<input type="hidden" name="${_csrf.parameterName}"  value="${_csrf.token}" />

下面给一个例子:

           <form class="form-new-pwd-wrapper"  action="${pageContext.request.contextPath }/resetNew" method="POST">
                        <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
                        <div class="pwd-input-container-wrapper">
                            <span class="pwd-title-wrapper">新密码&nbsp;:</span>&nbsp;&nbsp;<input id="pwd"
                                class="password-input-wrapper" type="password" name="password"  placeholder="&nbsp;请输入新的密码">
                        </div>

                        <div class="pwd-input-container-wrapper">
                            <span class="pwd-title-wrapper">再次输入:</span> <input id="confirm-pwd"
                                class="password-input-wrapper" type="password" placeholder="&nbsp;请再次输入新的密码">
                        </div>

                        <input class="submit-request-wrapper" type="submit" value="确认修改密码" onclick="return check();">
              </form>

 如果上属例子中没有添加上第二行的代码,

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />

则默认会被系统拦截,进入到预先设置的登录界面。

 

 

转载于:https://www.cnblogs.com/wyf-love-dch/p/7216155.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,你遇到的问题是在使用Spring Security提交表单时出现了302错误。302错误是重定向错误,表示请求的资源已经被临时移动到了另一个位置。在Spring Security中,当用户提交表单进行身份验证时,如果验证成功,系统会将用户重定向到之前请求的页面,而不是返回200状态码。 要解决这个问题,你可以检查以下几个方面: 1. 确保表单的提交地址正确。在Spring Security中,表单的默认提交地址是`/login`,你可以在配置文件中进行自定义配置。 2. 检查表单的提交方式是否正确。默认情况下,Spring Security使用POST方法进行表单提交,你需要确保表单的提交方式与配置文件中的一致。 3. 检查登录成功后的重定向地址是否正确。在Spring Security中,默认的登录成功后的重定向地址是之前请求的页面,你可以在配置文件中进行自定义配置。 4. 检查是否存在其他的拦截器或过滤器导致了重定向。有时候,其他的拦截器或过滤器可能会干扰Spring Security的正常流程,导致出现302错误。你可以检查是否存在其他的拦截器或过滤器,并进行相应的调整。 5. 检查是否存在其他的配置问题。如果以上步骤都没有解决问题,你可以检查其他的配置项,例如用户认证的配置、权限配置等。 下面是一个示例的Spring Security配置文件,你可以参考其中的配置项进行调整: ```yaml spring: security: user: name: yyg password: 123 form: login-page: /login login-processing-url: /doLogin default-target-url: /home failure-url: /login?error=true ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值