Безопасность SOAP, заголовки и обработчики в JAVA

#java #web-services #soap #wsdl #soaphandler

#java #веб-службы #soap #wsdl #soaphandler

Вопрос:

Я занимаюсь веб-сервисами SOAP на JAVA с помощью JWS.

Я хочу реализовать пользовательские заголовки, которые являются постоянными для всех предоставляемых веб-методов, поэтому было бы неэффективно использовать один и тот же параметр в качестве аргумента для всех предлагаемых веб-методов и объявлять их как заголовки с аннотацией web param .

Моя проблема в том, что я могу реализовать обработчик протокола, чтобы убедиться, что все мои пользовательские параметры заголовка присутствуют, и выдать ошибку, если их нет, однако это restful подход, поскольку эти параметры не будут определены в созданном WSDL, что для меня означало бы, что я не строго следую концепции soapи WSDL (то есть это контракт на обмен данными между приложениями.) В этом примере описывается нечто подобное, но

«Проанализируйте необъявленные пользовательские заголовки, учитывая, что нам нужно прочитать WSS UserToken, не опубликованный в нашем WSDL:»

Мне нужна вся информация, необходимая для описания в разделах заголовка и тела WSDL. Все ресурсы и вопросы по этому вопросу похожи, они просто реализуют обработчик, но они не описаны в WSDL.

Заранее спасибо.

Ответ №1:

Вы можете указать в своем интерфейсе веб-службы, что все методы вызывают исключение CustomException. В сгенерированном WSDL они будут представлены как ошибка в работе, тогда пользователь или служба будут знать, что вызов SOAP может вызвать исключение. Ваша фактическая реализация service не будет генерировать эти исключения, но обработчик будет делать.