我的account.java是这个
import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString @Document(collection="Account") public class Account { @Id private String id; private String username; private String password; private String role; } 我的repo 是这样的
import org.springframework.data.mongodb.repository.MongoRepository; public interface AccountRepository extends MongoRepository<Account, Integer> {
} 最后。对于我的控制器(尚未完成)
@PutMapping("/createAccount") public void createAccount(@RequestBody Account account) {
} 我想要以下内容
如果我要在请求正文中发送json,例如
{ "username": "Tom", "password": "123456", "role": "Employee" } 然后,它将在Account集合中创建一个具有该属性的对象,可以轻松地通过repository.insert(account)完成此操作。但是我需要检查某些过滤器
所有三个对象都需要设置 角色必须是“雇员”,“管理员”或“客户” 最后,用户尚未在数据库中 否则发送响应400
如何使用springboot实现此目的?
您可以在Controller中使用@Valid Annotation,然后可以在Model类中放置@NotNull或@NotEmpty或@NotBlank。参考:https : //www.baeldung.com/spring-boot-bean-validation public void createAccount(@Valid @RequestBodyAccount account){
}
public class Account {
@Id
@NotNull
private String id;
@NotNull
private String username;
@NotNull
private String password;
@NotNull
private String role;
} 您可以使用Spring Security Expressions。参考:https : //www.baeldung.com/spring-security-expressions-basic
@PreAuthorize(“ hasRole('ROLE_ADMIN')”)
@PutMapping(“ / createAccount”)
public void createAccount(@RequestBodyAccount account){
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。