Проблема отправки XML-сообщения на сервер через POSTMAN - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь создать безопасный метод post в @RestController, который получит сообщение XML и будет защищен от внедрения XML и не будет иметь успеха.

@RestController
@RequestMapping("message")
@CrossOrigin(origins = "http://localhost:4200")
public class XMLMessageExampleController {

@RequestMapping(value = "/example", method = RequestMethod.POST, consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
    public ResponseEntity<Customer> getXMLExample(String value) {
        System.out.println("yes");
        try {
            JAXBContext jc = JAXBContext.newInstance(Customer.class);

            XMLInputFactory xif = XMLInputFactory.newFactory();
            xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
            xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
            // XMLStreamReader xsr = xif.createXMLStreamReader(new
            // StreamSource(value));
            XMLEventReader streamReader = xif.createXMLEventReader(new StringReader(value));
            Unmarshaller unmarshaller = jc.createUnmarshaller();
            Customer customer = (Customer) unmarshaller.unmarshal(streamReader);

            Marshaller marshaller = jc.createMarshaller();
            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

            marshaller.marshal(customer, System.out);

            return new ResponseEntity<>(customer, HttpStatus.OK);
        } catch (JAXBException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (XMLStreamException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return new ResponseEntity<>(null, HttpStatus.OK);
    }

}

Я получил класс клиента

@XmlRootElement(name="customer")
public class Customer {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

И я пытаюсь отправить ниже XML через POSTMAN, как это: POST-запрос http://localhost:8080/message/example В разделе тела я выбрал raw и application / xml. И содержание

<customer>
    <name>Nikola</name>
</customer>

Я получаю это в ответ: Неправильный запрос CORS

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