spring启动后请求验证

jslywgbw  于 2021-07-15  发布在  Java
关注(0)|答案(0)|浏览(234)

我有一个名为credentials的类,它有两个字符串成员变量:username和password
我还有一门课叫profile。profile有一组成员变量,包括两个credentials对象。

public class Profile {

    @NotNull
    @NotEmpty
    private String id;

    @NotNull
    @NotEmpty
    private String businessAlias;

    @NotNull
    @NotEmpty
    private String localParty;
    ...
    private PartyCredentials localPartyCredentials ;
    private PartyCredentials remotePartyCredentials;

}

在postMap期间,post body json可能包含也可能不包含localpartycredentials和remotepartycredentials。如果它们包含其中任何一个,我想确保“localpartycredentials”或“remotepartycredentials”同时包含“username”和“password”密钥,否则这是一个无效的请求。
这是有效的

"localPartyCredentials":{
    "username":"one",
    "password": two
}

如果“localpartycredentials”jsonnode不存在,那么它也是一个有效的请求。但如果“用户名”或“密码”或两者都丢失,则无效。
在partycredentials中向用户名和密码添加@notnull和@notempty似乎不起作用。以下是post-req的Map:

@PostMapping(path = "/", consumes = "application/json", produces = "application/json")
    public ResponseEntity<?> create(
            @NotNull @Valid @RequestBody Profile profile) throws JsonProcessingException {

下面是我的设置器在凭据对象的配置文件中的样子:

public void setLocalPartyCredentials(PartyCredentials localPartyCredentials) {
        this.localPartyCredentials = localPartyCredentials;
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题