как инициализировать контекст сервера с помощью gsoap, чтобы включить простую аутентификацию (аутентификация только на сервере)

У меня есть server.pem и server.jks для серверной части, которая является моим клиентом (soapui). Я инициализирую контекст сервера ssl, чтобы включить простую аутентификацию для моей веб-службы следующим образом:

int ssl_connection_flag = SOAP_SSL_DEFAULT; // Simple authentication

int soap_result = soap_ssl_server_context(soap_object,
                                                ssl_connection_flag,//SOAP_SSL_NO_AUTHENTICATION,//m_ssl_connection_flag,
                                                m_key_file.c_str(),//Settings::instance()->get_cert_mngr_tls_certificate_path().c_str(),//"D:\\ICA\\Release\\currentStore\\TLSCertificate.pem",//m_ssl_private_key_file_path.c_str(),/* keyfile: required when server must authenticate to clients (see SSL docs on how to obtain this file) */
                                                l_recover.c_str(),//"changeit",//PWDHelper::instance()->retrieve_pwd("k-tls-key").c_str(),//"changeit",//"12345678",//"server_key_password",/* password to read the key file (not used with GNUTLS) */
                                                m_ca_certs_file.c_str(),//Settings::instance()->get_cert_mngr_ca_path().c_str(),//"D:\\ICA\\Release\\currentStore\\CA.pem",//"D:\\CertificatBrahim\\CAs.pem",//m_ssl_ca_file_path.c_str(), /* optional cacert file to store trusted certificates */                                                 
                                                NULL, /* optional capath to directory with trusted certificates */
                                                NULL,/* DH file name or DH key len bits (minimum is 512, e.g. "512") to generate DH param, if NULL use RSA */
                                                NULL,
                                                NULL);

Проблема в том, что когда я ищу в wirehark после отправки моего запроса из SoapUI на удаленный компьютер, где находится мой сервер. Декодирование выглядит так, будто происходит взаимная аутентификация.

Но когда я меняю

SOAP_SSL_DEFAULT

с участием

SOAP_SSL_NO_AUTHENTICATION

, и отправил тот же запрос, в wireshark похоже происходит простая (только аутентификация сервера).

Но это меня смущает, потому что, если я буду следовать документации gSoap, опция TLS/SSL SOAP_SSL_NO_AUTHENTICATION отключит аутентификацию как клиента, так и сервера.

Тогда у меня вопрос, что я делаю не так?

заранее спасибо за ваши ответы.

С наилучшими пожеланиями.


person R. Many    schedule 02.06.2017    source источник


Ответы (1)


Флаг SOAP_SSL_NO_AUTHENTICATION на стороне сервера не запрещает клиенту запрашивать сервер для аутентификации. Этот флаг отключает требование аутентификации равноправного узла на запрашивающей стороне. В вашем случае клиент является запрашивающей стороной, а флаг установлен на стороне сервера.

person Dr. Alex RE    schedule 06.07.2017
comment
Спасибо за ваш ответ - person R. Many; 07.07.2017