405不允许用于POST的方法
我有一个非常简单的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");
这个想法是为了保护“管理员”部分。它公开了REST API。问题是所有POSTS返回
405方法不允许
如果我从应用程序中删除了安全启动器,它将起作用。这使我相信安全配置是问题所在。但我不知道如何。
回答:
这应该很容易。
如果启用了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,请参考docs:
http://docs.spring.io/spring-
security/site/docs/4.0.x/reference/htmlsingle/#csrf-
configure
以上是 405不允许用于POST的方法 的全部内容, 来源链接: utcz.com/qa/419692.html