Spring安全性csrf为null

Muf*_*anu 7 jsp csrf spring-security

我有登录表单,我想保护它免受csrf atacks.

我的spring-security.xml

<sec:http auto-config="true" use-expressions="true">
    ...
    <sec:csrf />
</sec:http>
Run Code Online (Sandbox Code Playgroud)

我的jsp文件(使用磁贴):

<form class="navbar-form navbar-right form-inline" method="POST" role="form"
  action="j_spring_security_check">
  <div class="form-group">
    <input class="form-control" type="email" name="j_username">
  </div>
  <div class="form-group">
    <input class="form-control" type="password" name="j_password">
  </div>
  <button class="btn btn-default" type="submit">Login</button>

  <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}">
</form>
Run Code Online (Sandbox Code Playgroud)

我可以授权,但csrf是空的:

<input type="hidden" value="" name="">
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

Rob*_*nch 0

您确定 JSTL 设置正确吗?您是否尝试过使用标签来代替?如果以下方法有效,则 JSTL 可能未正确设置:

<c:out value="${_csrf.parameterName}"/>
Run Code Online (Sandbox Code Playgroud)

只是为了确定你是否有任何障碍?如果是这样,请确保您没有禁用登录表单上的安全性。