首页 > 解决方案 > 使用 @requestBody 时发布请求返回 400

问题描述

当我尝试在我的 Spring Boot 应用程序上发布一些数据时,我遇到了一个奇怪的问题

我的身体请求类:


public class KeyCloakUserRegister {

    @NotEmpty
    private String firstName;

    @NotEmpty
    private String lastName;

    @Email
    @UniqueInKeycloakConstraint
    private String email;


    private String password;

    public KeyCloakUserRegister(){}

    public KeyCloakUserRegister(String firstName, String lastName, String email, String password) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
        this.password = password;
    }
 // getters and setters
}

我的休息控制器

@RestController
@RequestMapping("/auth")
public class AuthController {

    @Autowired
    private KeycloakAuthenticationService keycloakAuthenticationService;

    @PostMapping("/create-user")
    public ResponseEntity<?> createUser(@Valid @RequestBody KeyCloakUserRegister keyCloakUserRegister)
    {
        UserRepresentation user = keycloakAuthenticationService.createUser(keyCloakUserRegister);
        return ResponseEntity.ok(user);
    }
    ....
}

我的安全配置

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().disable().csrf().disable()
                .authorizeRequests()
                .antMatchers("/auth/**").permitAll()
                .anyRequest()
                .authenticated()
                .and()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and()
                .oauth2ResourceServer()
                .jwt();
    }
}

这是我的邮递员要求

在此处输入图像描述

谢谢您的帮助!

标签: springspring-bootspring-security

解决方案


我遇到了同样的问题,并且已修复以使 cors 启用。如果您从安全配置中删除 cors 设置,您可以访问它。如果您发现相同的响应,请分享您的响应标头列表。


推荐阅读