spring - 使用 @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();
}
}
这是我的邮递员要求
谢谢您的帮助!
解决方案
我遇到了同样的问题,并且已修复以使 cors 启用。如果您从安全配置中删除 cors 设置,您可以访问它。如果您发现相同的响应,请分享您的响应标头列表。
推荐阅读
- javascript - 在容器外单击时容器自动隐藏
- c++ - 如何使用“->”运算符更改单链表中的指针地址
- reactjs - 功能组件的 PropTypes.instanceOf 不起作用
- docker - 找不到该命令,因为 PATH 环境变量中未包含“/snap/bin”
- java - Java:链接列表节点在我的代码中不起作用
- android - 运行“应用程序”的 Android Studio 错误:未找到默认活动
- android-studio - android studio中的手动命名空间
- reactjs - 我将 React 和 spring boot 部署到 heroku 上的 2 个不同的应用程序中。我怎样才能让他们互相交谈
- jenkins - 在 Jenkins 中,为什么我们会看到两个不同的 executor 执行同一阶段?
- node.js - 程序“node.exe”无法在 Visual Studio 代码中运行