【问题标题】:CSRF protection with custom form自定义表单的 CSRF 保护
【发布时间】:2015-04-30 10:15:39
【问题描述】:

我在应用程序中创建了一个自定义表单,并将其操作设置为由我的一个 RestController 映射的 url。我发送表单,并在浏览器中收到以下错误消息:

您的请求无法处理 抱歉,出现错误。

状态:禁止(禁止) 消息:在请求参数“_csrf”或标头“X-CSRF-TOKEN”上发现无效的 CSRF 令牌“null”。

我在请求本身和标题中查看了 chrome 开发工具,我发现了这个:

Cookie:已访问=是; NG_TRANSLATE_LANG_KEY=%22zh%22; tmhDynamicLocale.locale=%22en%22; JSESSIONID=FB0F8F19DE9B17AE4038C0149A81D829; SPRING_SECURITY_REMEMBER_ME_COOKIE=NEY5SnBQMUExcForNWFuUzVJbWlpdz09OmErQkE0bWZhbURubzFDamd5ckNJUUE9PQ; CSRF-TOKEN=ab678757-2326-4ebe-99e5-c97c1372fc9a

这是否意味着请求获得了 CSRF 令牌但名称错误,或者这完全是另外一回事?如何将正确的 CSRF 令牌插入到表单中,或者更确切地说它应该如何自动到达那里?

【问题讨论】:

    标签: jhipster


    【解决方案1】:

    如果您只是想看到您的表单正常工作,您可以禁用对 URL 表单的 CSRF 保护。只需在 web.ignoring() 上添加一个条目

    SecurityConfiguration.java 上,找到configure 方法并添加如下条目:

    web.ignoring() .antMatchers("/api/yoururl/**") .antMatchers("/scripts/**/*.{js,html}") .antMatchers("/bower_components/**") .antMatchers("/i18n/**") .antMatchers("/assets/**") .antMatchers("/swagger-ui/**") .antMatchers("/test/**") .antMatchers("/console/**");

    【讨论】:

    • 谢谢!我试试看!
    猜你喜欢
    • 2018-11-03
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2011-10-15
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多