gpt4 book ai didi

spring - 405 不允许使用 POST 方法

转载 作者:行者123 更新时间:2023-12-02 08:45:06 26 4
gpt4 key购买 nike

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

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”部分。它公开了 REST API。问题是所有的POSTS返回

405 Method Not Allowed

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

最佳答案

这应该很容易。

如果启用了 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-configure

关于spring - 405 不允许使用 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33699724/

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