gpt4 book ai didi

java - 未找到预期的 CSRF token 。您的 session 是否已过期 403

转载 作者:IT老高 更新时间:2023-10-28 13:46:10 27 4
gpt4 key购买 nike

我正在尝试使用 mkyong 示例编写我的测试 spring 安全应用程序。

Spring Security: 4.0.0.RC1
Spring: 4.1.4.RELEASE

我有以下安全配置:

<http auto-config="true">
<intercept-url pattern="/admin**"
access="hasRole('ADMIN')"/>
<form-login authentication-failure-url="/?auth_error"
username-parameter="user"
password-parameter="password"
login-page="/"
default-target-url="/?OK"/>
<!-- <csrf/> -->
</http>

<authentication-manager>
<authentication-provider>
<user-service>
<user name="mkyong" password="123456" authorities="ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>

登录页面:

<html>
<body>
<form method="POST">
<label for="user">User: </label>
<input type="text" id="user" name="user" /> </br>
<label for="password">Password: </label>
<input type="text" name="password" id="password" /> </br>
<input type="submit" />
</form>
</body>
</html>

现在,当我尝试登录时,出现 403 错误页面:

Invalid CSRF Token 'null' was found on the request parameter 
'_csrf' or header 'X-CSRF-TOKEN'.

说明:

Access to the specified resource (Invalid CSRF Token 'null' was
found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.) has been
forbidden.

出了什么问题,我该如何解决?我在配置中注释了 csrf,但错误消息与 csrf 有关。

最佳答案

我遇到了同样的问题。我使用 thymeleaf 和 Spring boot,当我尝试在表单中发布数据时遇到 CSRF token 问题。

这是我的工作解决方案:

  1. 添加这个隐藏的输入:

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

  2. 在您的WebSecurityConfig (扩展 WebSecurityConfigurerAdapter ),添加一个方法:

    private CsrfTokenRepository csrfTokenRepository() 
    {
    HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository();
    repository.setSessionAttributeName("_csrf");
    return repository;
    }

    并在方法 configure() 中添加代码:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
    http.csrf()
    .csrfTokenRepository(csrfTokenRepository())

我在这个问题上花了很多时间。希望它可以帮助有同样问题的人。

关于java - 未找到预期的 CSRF token 。您的 session 是否已过期 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28138864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com