首页 文章

SOAPUI 5.3.0调用联机Exchange Web服务失败,401 Unauthorized

提问于
浏览
1

从5.2.1更新到5.3.0后,我无法再使用SOAPUI登录到在线Exchange Web服务 . 所有调用都失败并出现"HTTP/1.1 401 Unauthorized"错误,我得到 only one HTTP响应(不是通常来回 Build 连接):

HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/8.5
request-id: 8d593b7a-d934-480d-a890-16ad3f7baa0b
X-Powered-By: ASP.NET
X-FEServer: VI1PR07CA0015
WWW-Authenticate: Basic Realm=""
Date: Wed, 11 Jan 2017 14:21:12 GMT
Content-Length: 0

其他信息:

  • endpoints 是 https://outlook.office365.com/ews/exchange.asmx ,用户名是 xxx@companyname123.onmicrosoft.com ,域是 companyname123.onmicrosoft.com .

  • 我正在做的SOAPUI测试调用(包括所有参数;例如,身份验证类型NTLM)没有改变

  • Office / Exchange联机的任何管理设置都是相同的

  • 我对Internet连接没有任何问题,或者对我们的内部Exchange 2010,2013或2016测试服务器使用SOAPUI或我的Delphi代码,或者针对(3)我经常使用的其他Web服务 . Delphi程序也适用于Exchange Online .

  • 我在VMWare Workstation 12.1.1中的Win7下运行SOAPUI / Delphi Seattle

  • 5.2.1和5.3.0 XML文件中的差异仅是版本号的更改,并且在文件末尾从 <con:oAuth2ProfileContainer/> 更改为 <con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/> .

  • 使用设置'follow-redirects'或'authenticate preemptively'进行播放没有任何区别

  • 我在1月11日问了这个question on the Smartbear Forums,但没有回复 .

  • 当然有可能在同一时期内使用Exchange Online进行操作;几个月来我没有使用SOAPUI连接

FWIW,这是我的soapui-settings.xml设置文件:

<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-settings xmlns:con="http://eviware.com/soapui/config">
<con:setting id="WsdlSettings@excluded-types">&lt;con:entry xmlns:con="http://eviware.com/soapui/config">schema@http://www.w3.org/2001/XMLSchema&lt;/con:entry></con:settin... id="WebRecordingSettings@excluded-headers"><![CDATA[<xml-fragment><con:entry xmlns:con="http://eviware.com/soapui/config">Cookie</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Set-Cookie</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Referer</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Keep-Alive</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Connection</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Proxy-Connection</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Pragma</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Cache-Control</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Transfer-Encoding</con:entry><con:entry xmlns:con="http://eviware.com/soapui/config">Date</con:entry></xml-fragment>]]></con:setting>
<con:setting id="WsdlSettings@name-with-binding">true</con:setting>
<con:setting id="HttpSettings@http_version">1.1</con:setting>
<con:setting id="HttpSettings@max_total_connections">2000</con:setting>
<con:setting id="HttpSettings@response-compression">true</con:setting>
<con:setting id="HttpSettings@leave_mockengine">true</con:setting>
<con:setting id="UISettings@auto_save_projects_on_exit">true</con:setting>
<con:setting id="UISettings@show_descriptions">true</con:setting>
<con:setting id="WsdlSettings@xml-generation-always-include-optional-elements">true</con:setting>
<con:setting id="WsaSettings@useDefaultRelatesTo">true</con:setting>
<con:setting id="WsaSettings@useDefaultRelationshipType">true</con:setting>
<con:setting id="UISettings@show_startup_page">false</con:setting>
<con:setting id="UISettings@gc_interval">60</con:setting>
<con:setting id="WsdlSettings@cache-wsdls">true</con:setting>
<con:setting id="WsdlSettings@pretty-print-response-xml">true</con:setting>
<con:setting id="HttpSettings@include_request_in_time_taken">true</con:setting>
<con:setting id="HttpSettings@include_response_in_time_taken">true</con:setting>
<con:setting id="UISettings@auto_save_interval">0</con:setting>
<con:setting id="WsaSettings@soapActionOverridesWsaAction">true</con:setting>
<con:setting id="WsaSettings@overrideExistingHeaders">true</con:setting>
<con:setting id="WsaSettings@enableForOptional">true</con:setting>
<con:setting id="VersionUpdateSettings@auto-check-version-update">true</con:setting>
<con:setting id="WSISettings@location">C:\Program Files\SmartBear\SoapUI-5.2.0/wsi-test-tools</con:setting>
<con:setting id="RecentProjects"><![CDATA[<xml-fragment xmlns:con="http://eviware.com/soapui/config">
      <con:entry key="" value="Test Exchange 2016"/>
      <con:entry key="Test-Exchange-2013-soapui-project.xml" value="Test Exchange 2013"/>
      <con:entry key="" value="Test Exchange 2013"/>
      <con:entry key="D:\Testing\Web\Exchange Web Services\SoapUI\Tests-Exchange-soapui-project.xml" value="Tests Exchange"/>
      <con:entry key="D:\Testing\Exchange server\SoapUI\Test-Exchange-2013-soapui-project.xml" value="Test Exchange 2013"/>
      <con:entry key="D:\Testing\Exchange Server\SoapUI\Test-Exchange-soapui-project.xml" value="Test Exchange"/>
      <con:entry key="D:\SOAPUIData\Test-Office-365-soapui-project.xml" value="Test Office 365"/>
    </xml-fragment>]]></con:setting>
<con:setting id="GlobalPropertySettings@properties">&lt;xml-fragment/></con:setting>
<con:setting id="GlobalPropertySettings@security_scans_properties"><![CDATA[<xml-fragment xmlns:con="http://eviware.com/soapui/config">
      <conSmiley Tongueroperty>
        <con:name>~(?s).*(s|S)tack ?(t|T)race.*</con:name>
        <con:value>[Stacktrace] Can give hackers information about which software or language you are using</con:value>
      </conSmiley Tongueroperty>
      [.. similar property lines removed ..]
    </xml-fragment>]]></con:setting>
<con:setting id="HttpSettings@user-agent"/>
<con:setting id="HttpSettings@request-compression">None</con:setting>
<con:setting id="HttpSettings@disable_response_decompression">false</con:setting>
<con:setting id="HttpSettings@close-connections">false</con:setting>
<con:setting id="HttpSettings@chunking_threshold"/>
<con:setting id="HttpSettings@authenticate-preemptively">false</con:setting>
<con:setting id="HttpSettings@expect-continue">false</con:setting>
<con:setting id="HttpSettings@encoded_urls">false</con:setting>
<con:setting id="HttpSettings@forward_slashes">false</con:setting>
<con:setting id="HttpSettings@bind_address"/>
<con:setting id="HttpSettings@socket_timeout"/>
<con:setting id="HttpSettings@max_response_size"/>
<con:setting id="HttpSettings@max_connections_per_host"/>
<con:setting id="HttpSettings@enable_mock_wire_log">false</con:setting>
<con:setting id="ProxySettings@host">127.0.0.1</con:setting>
<con:setting id="ProxySettings@port">8888</con:setting>
<con:setting id="ProxySettings@username"/>
<con:setting id="ProxySettings@password"/>
<con:setting id="ProxySettings@excludes"/>
<con:setting id="ProxySettings@enableProxy">false</con:setting>
<con:setting id="SSLSettings@keyStore"/>
<con:setting id="SSLSettings@keyStorePassword"/>
<con:setting id="SSLSettings@enableMockSSL">false</con:setting>
<con:setting id="SSLSettings@mockPort"/>
<con:setting id="SSLSettings@mockKeyStore"/>
<con:setting id="SSLSettings@mockPassword"/>
<con:setting id="SSLSettings@mockKeyStorePassword"/>
<con:setting id="SSLSettings@mockTrustStore"/>
<con:setting id="SSLSettings@mockTrustStorePassword"/>
<con:setting id="SSLSettings@needClientAuthentication">false</con:setting>
<con:setting id="WsdlSettings@xml-generation-type-example-value">false</con:setting>
<con:setting id="WsdlSettings@xml-generation-type-comment-type">false</con:setting>
<con:setting id="WsdlSettings@attachment-parts">false</con:setting>
<con:setting id="WsdlSettings@allow-incorrect-contenttype">false</con:setting>
<con:setting id="WsdlSettings@schema-directory"/>
<con:setting id="WsdlSettings@strict-schema-types">false</con:setting>
<con:setting id="WsdlSettings@compression-limit"/>
<con:setting id="WsdlSettings@pretty-print-project-files">false</con:setting>
<con:setting id="WsdlSettings@trim-wsdl">false</con:setting>
<con:setting id="UISettings@close-projects">false</con:setting>
<con:setting id="UISettings@order-projects">false</con:setting>
<con:setting id="UISettings@order-services">false</con:setting>
<con:setting id="UISettings@order-requests">false</con:setting>
<con:setting id="UISettings@create_backup">true</con:setting>
<con:setting id="UISettings@backup_folder"/>
<con:setting id="UISettings@normalize_line-breaks">false</con:setting>
<con:setting id="UISettings@desktop-type">Default</con:setting>
<con:setting id="UISettings@native-laf">false</con:setting>
<con:setting id="UISettings@dont-disable-groovy-log">false</con:setting>
<con:setting id="UISettings@show_logs_at_startup">false</con:setting>
<con:setting id="UISettings@disable_tooltips">false</con:setting>
<con:setting id="UISettings@raw_response_message_size_show">10000</con:setting>
<con:setting id="UISettings@raw_request_message_size_show">10000</con:setting>
<con:setting id="UISettings@wrap_raw_messages">false</con:setting>
<con:setting id="UISettings@disable-browser">false</con:setting>
<con:setting id="UISettings@disable-browser-plugins">false</con:setting>
<con:setting id="UISettings@editor-font">Monospaced.plain 11</con:setting>
<con:setting id="UISettings@no_resize_request_editor">false</con:setting>
<con:setting id="UISettings@start_with_request_tabs">false</con:setting>
<con:setting id="UISettings@auto_validate_request">false</con:setting>
<con:setting id="UISettings@abort_on_invalid_request">false</con:setting>
<con:setting id="UISettings@auto_validate_response">false</con:setting>
<con:setting id="UISettings@show_xml_line_numbers">false</con:setting>
<con:setting id="UISettings@show_groovy_line_numbers">false</con:setting>
<con:setting id="ToolsSettings@jbossws_wstools"/>
<con:setting id="ToolsSettings@axis_1_X"/>
<con:setting id="ToolsSettings@axis_2"/>
<con:setting id="ToolsSettings@jwsdp_wscompile"/>
<con:setting id="ToolsSettings@jwsdp_wsimport"/>
<con:setting id="ToolsSettings@javac"/>
<con:setting id="ToolsSettings@dotnet_wsdl"/>
<con:setting id="ToolsSettings@cxf"/>
<con:setting id="ToolsSettings@xfire"/>
<con:setting id="ToolsSettings@gsoap"/>
<con:setting id="ToolsSettings@ant"/>
<con:setting id="ToolsSettings@xmlbeans"/>
<con:setting id="ToolsSettings@jaxb"/>
<con:setting id="ToolsSettings@tcpmon"/>
<con:setting id="ToolsSettings@wsa"/>
<con:setting id="ToolsSettings@wadl2java"/>
<con:setting id="ToolsSettings@hermesjms"/>
<con:setting id="WSISettings@verbose">false</con:setting>
<con:setting id="WSISettings@results_type">all</con:setting>
<con:setting id="WSISettings@messageEntry">false</con:setting>
<con:setting id="WSISettings@failureMessage">false</con:setting>
<con:setting id="WSISettings@assertionDescription">false</con:setting>
<con:setting id="WSISettings@showLog">false</con:setting>
<con:setting id="WSISettings@outputFolder"/>
<con:setting id="GlobalPropertySettings@enableOverride">false</con:setting>
<con:setting id="SecuritySettings@shadowProxyPassword"/>
<con:setting id="LoadUISettings@loadui_path"/>
<con:setting id="LoadUISettings@cajo_port">1199</con:setting>
<con:setting id="LoadUISettings@cajo_soapui_port">1198</con:setting>
<con:setting id="com.eviware.soapui.SoapUI@versionToSkip">5.1.2</con:setting>
<con:setting id="HttpSettings@start_mock_service">true</con:setting>
<con:setting id="UISettings@disable_analytics">true</con:setting>
<con:setting id="UISettings@analytics_opt_out_version">5.2</con:setting>
<con:setting id="NextAU">1483707576871</con:setting>
</con:soapui-settings>

1 回答

  • 3

    诀窍是更改将身份验证类型更改为基本:

    为什么会这样,我不知道 . 早期的Exchange版本仍然可以使用NTLM身份验证 .
    正如我的问题中所建议的那样,在我升级SOAPUI的同一时期内,Exchange Online的内容似乎发生了变化 .

    2015年3月9日的MS文章Authentication and EWS in Exchange

    • 表示NTLM仅适用于Exchange内部部署 - 在2015年和2016年的大部分时间,当我使用带有NTLM设置的SOAPUI时,这肯定不是真的 .

    • 建议我也停止使用Basic,但现在它是一个解决方案 .

相关问题