当前位置: 首页 > 知识库问答 >
问题:

405不允许POST的方法

鲁博赡
2023-03-14

我有一个非常简单的Spring引导应用程序,它由以下代码保护:

http.authorizeRequests()
        .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
        .and()
          .formLogin().loginPage("/login").failureUrl("/login?error")
          .usernameParameter("username").passwordParameter("password")
        .and()
          .logout().logoutSuccessUrl("/login?logout")
        .and()
          .exceptionHandling().accessDeniedPage("/403");

这个想法是为了保护“admin”部分。它公开了一个RESTAPI。问题是所有的帖子都被退回了

405方法不允许

如果我从应用程序中删除安全启动器,它就会工作。这让我相信安全配置是问题所在。但我不知道怎么做。

共有2个答案

封瑞
2023-03-14

如果使用Spring Security SAML扩展并且您的SAMLUserDetailsService返回UsernameNotFoundException,也会发生这种情况。看起来很反直觉,但这是默认情况下(根据我的经验)。

空英达
2023-03-14

这应该很容易。

如果启用了CSRF,则不允许POST和PUT请求,并且spring boot默认启用这些请求。

只需将其添加到配置代码中:

.csrf().disable()

即:

http.
.csrf().disable().
authorizeRequests()
        .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
        .and()
          .formLogin().loginPage("/login").failureUrl("/login?error")
          .usernameParameter("username").passwordParameter("password")
        .and()
          .logout().logoutSuccessUrl("/login?logout")
        .and()
          .exceptionHandling().accessDeniedPage("/403");

如果需要启用CSRF,请参考文档:

http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#csrf-配置

 类似资料:
  • 我有一个restcontroller和post方法,带有以下url和json请求。http://server/member/sc/v1/limited-liability/medicare 使用post方法和json请求在本地触发请求时,获得正确的响应。但在docker中以spring boot应用程序的形式运行会将异常作为不允许的方法抛出。最初,我将这个docker服务部署为put方法。现在我转

  • 我有以下发帖方法, 我正在使用fiddler发布以下请求, 注意:还没有为spring配置安全性。

  • 问题内容: 我刚刚开始学习Flask,并且我正在尝试创建一种允许POST方法的表单。 这是我的方法: 而我的: 加载表单(在收到GET时将其呈现)可以正常工作。但是,当我单击“ 提交”按钮时,出现一个。 为什么不显示“ Hello”? 问题答案: 除非存在输入错误,否则你的表单将提交给路由方法,除非你输入错误,否则应调整表单的属性以指向视图

  • 我正在使用ajax进行表单更新。当我在ajax中使用GET方法时,它工作得很好,但当我使用Post方法时,它抛出了错误405 method,这是不允许的。我正在本地主机上测试这个。我以前在localhost中做过,效果很好。顺便说一句,我用的是Laravel5.2。 这是我的ajax代码。 这是我在视图中使用的脚本 这是我的路线 当ajax函数和路由中的方法更改为GET时,它会打印在控制台中传递的

  • 我正在尝试用POST方法对我的Spring控制器/Action进行ajax调用,并用@ResponseBody从服务器返回一个对象。奇怪的是,在添加了Spring Security层之后,它就停止工作了,之前一切都正常工作。我将试着解释我的解决问题的方法,然后向您展示代码/捕获/等等。 1.经过一些研究,我找到了一些答案,说明这个问题可能与csrf机制有关,所以我禁用了它,仍然存在这个问题。(sp

  • 问题内容: 我遇到一个问题,我的图表(使用AJAX-POST-PHP)没有出现在亚马逊上 http://cdpmotest.s3-website.eu- central-1.amazonaws.com/ 它说(错误的方法405错误) 这是我的CORS Config: 这是我的脚本: 在localhost(WAMPServer)上工作正常 你能帮我吗? 问题答案: 该错误的直接原因与CORS无关,实