@RestController также принимает нежелательные теги - PullRequest
0 голосов
/ 05 ноября 2018

Я создал весенний веб-сервис REST с использованием весенней загрузки. Он принимает XML в requestbody. Проблема в том, что он также принимает нежелательные теги и дает результаты, которые я хочу ограничить и уведомить пользователя об этом. Как я могу проверить тело запроса (xml) против xsd, прежде чем оно достигнет контроллера или любым другим способом. Пожалуйста, предложите.

Контроллер:

@PostMapping(value = "/webservice/{text}", produces = { MediaType.APPLICATION_XML_VALUE })
    public ServiceResult processRequest(@PathVariable("text") String text,
            @RequestBody Request Request) {

Фасоль:

@XmlRootElement(name="Request")
@XmlType(propOrder = {"requestHeader", "requestBody"})
public class Request implements Serializable {

    private RequestHeader requestHeader;
    private RequestBody requestBody;

    @XmlElement(name="RequestHeader")
    public RequestHeader getRequestHeader() {
        return requestHeader;
    }

    public void setRequestHeader(RequestHeader requestHeader) {
        this.requestHeader = requestHeader;
    }

    @XmlElement(name="RequestBody")
    public RequestBody getRequestBody() {
        return requestBody;
    }

    public void setRequestBody(RequestBody requestBody) {
        this.requestBody = requestBody;
    }
}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Тогда вы можете потерпеть неудачу на нежелательных тегах: https://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES Кроме того, если вы можете использовать проверку бинов для проверки значений. Однако эта проверка не имеет ничего общего с xsd

0 голосов
/ 05 ноября 2018

Добавление указанного ниже свойства в файлы application.properties решило мою проблему.

spring.jackson.deserialization.fail-на-искомого-свойство = истина

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...