Spring RestController 方法 returns 状态 403
Spring RestController method returns status 403
我有一个带有这样代码的 RestController:
@RestController
@RequestMapping("/")
@CrossOrigin
public class UserController {
@PostMapping("registration")
@ResponseStatus(HttpStatus.OK)
public void registration(@RequestBody @Valid RegistrationRequest registrationRequest,
BindingResult result) {
//business logic
}
}
我希望得到没有正文和状态代码的响应 200.What 我得到的是状态 403 - 禁止访问。
P.S。当我将此方法更改为 return some not null Object 时,我得到状态 200(没有 @ResponseStatus)。
P.P.S。 CSRF 已禁用
有什么想法吗?
提前致谢。
试试下面的方法:
- 从您的控制器中删除
@RequestMapping("/")
class
- 将
registration
方法上的注释修改为 @PostMapping("/registration")
- 确保在您的安全配置 class(您用
@EnableWebSecurity
注释的配置)中用 http.csrf().disable().authorizeRequests().antMatchers(POST, "/registration").permitAll()
覆盖 configure(HttpSecurity http)
方法。确保您没有在此处禁用 CORS,因为您已经在控制器上添加了 @CrossOrigin
。
问题出在 auth 过滤器中(设置状态 403 被硬编码...)。
我有一个带有这样代码的 RestController:
@RestController
@RequestMapping("/")
@CrossOrigin
public class UserController {
@PostMapping("registration")
@ResponseStatus(HttpStatus.OK)
public void registration(@RequestBody @Valid RegistrationRequest registrationRequest,
BindingResult result) {
//business logic
}
}
我希望得到没有正文和状态代码的响应 200.What 我得到的是状态 403 - 禁止访问。
P.S。当我将此方法更改为 return some not null Object 时,我得到状态 200(没有 @ResponseStatus)。
P.P.S。 CSRF 已禁用
有什么想法吗?
提前致谢。
试试下面的方法:
- 从您的控制器中删除
@RequestMapping("/")
class - 将
registration
方法上的注释修改为@PostMapping("/registration")
- 确保在您的安全配置 class(您用
@EnableWebSecurity
注释的配置)中用http.csrf().disable().authorizeRequests().antMatchers(POST, "/registration").permitAll()
覆盖configure(HttpSecurity http)
方法。确保您没有在此处禁用 CORS,因为您已经在控制器上添加了@CrossOrigin
。
问题出在 auth 过滤器中(设置状态 403 被硬编码...)。