在Android Emulator/设备上测试时,在登录应用程序之前无法获取成功的适配器响应
在使用Android设备/仿真器登录之前,我无法成功调用适配器响应。我使用基于适配器的身份验证机制对应用程序进行身份验证 对于需要保护的适配器过程,进一步使用在Android Emulator/设备上测试时,在登录应用程序之前无法获取成功的适配器响应,android,ibm-mobilefirst,Android,Ibm Mobilefirst,在使用Android设备/仿真器登录之前,我无法成功调用适配器响应。我使用基于适配器的身份验证机制对应用程序进行身份验证 对于需要保护的适配器过程,进一步使用securityTest=“wl\u unprotected” 此外,我正在使用mobilesesecuritytest,如下面的“authenticationConfig.xml”和application descriptor.xml文件所示 authenticationConfig.xml <?xml version="1.0"
securityTest=“wl\u unprotected”
此外,我正在使用mobilesesecuritytest
,如下面的“authenticationConfig.xml”和application descriptor.xml文件所示
authenticationConfig.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<tns:loginConfiguration xmlns:tns="http://www.worklight.com/auth/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<securityTests>
<mobileSecurityTest name="MS1">
<testUser realm="AuthRealm"/>
<testDeviceId provisioningType="none"/>
</mobileSecurityTest>
</securityTests>
<realms>
<realm loginModule="AuthLoginModule" name="AuthRealm">
<className>com.worklight.integration.auth.AdapterAuthenticator</className>
<parameter name="login-function" value="PushAdapter.onAuthRequired"/>
<parameter name="logout-function" value="PushAdapter.onLogout"/>
</realm>
</realms>
<loginModules>
<loginModule expirationInSeconds="-1" name="AuthLoginModule">
<className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
</loginModule>
</loginModules>
</tns:loginConfiguration>
<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="PushAdapter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wl="http://www.ibm.com/mfp/integration" xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>PushAdapter</displayName>
<description>PushAdapter</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>http</protocol>
<domain>xxxx</domain>
<port>xxxx</port>
<connectionTimeoutInMilliseconds>100000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>50000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>20</maxConcurrentConnectionsPerNode>
</connectionPolicy>
</connectivity>
<procedure name="submitAuthentication" securityTest="wl_unprotected" />
</wl:adapter>
<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="demoAdapter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wl="http://www.ibm.com/mfp/integration"
xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>demoAdapter</displayName>
<description>demoAdapter</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>http</protocol>
<domain>xxxxxx</domain>
<port>xx</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
<!-- Following properties used by adapter's key manager for choosing specific certificate from key store
<sslCertificateAlias></sslCertificateAlias>
<sslCertificatePassword></sslCertificatePassword>
-->
</connectionPolicy>
</connectivity>
<procedure name="getResponse"/>
</wl:adapter>
我已经在Angularjs控制器中实现了挑战处理程序功能,并且能够使用凭据成功登录
我面临的问题是在身份验证之前尝试调用适配器过程。在浏览器/模拟器上测试时,该应用程序运行良好。但当我在Android模拟器/设备上测试时,我面临着这个问题
考虑下面的场景,我在登录表单下面有一个按钮,它从适配器过程“getResponse”获取响应,如下面的适配器所示
demoAdapter
demoAdapter.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<tns:loginConfiguration xmlns:tns="http://www.worklight.com/auth/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<securityTests>
<mobileSecurityTest name="MS1">
<testUser realm="AuthRealm"/>
<testDeviceId provisioningType="none"/>
</mobileSecurityTest>
</securityTests>
<realms>
<realm loginModule="AuthLoginModule" name="AuthRealm">
<className>com.worklight.integration.auth.AdapterAuthenticator</className>
<parameter name="login-function" value="PushAdapter.onAuthRequired"/>
<parameter name="logout-function" value="PushAdapter.onLogout"/>
</realm>
</realms>
<loginModules>
<loginModule expirationInSeconds="-1" name="AuthLoginModule">
<className>com.worklight.core.auth.ext.NonValidatingLoginModule</className>
</loginModule>
</loginModules>
</tns:loginConfiguration>
<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="PushAdapter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wl="http://www.ibm.com/mfp/integration" xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>PushAdapter</displayName>
<description>PushAdapter</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>http</protocol>
<domain>xxxx</domain>
<port>xxxx</port>
<connectionTimeoutInMilliseconds>100000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>50000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>20</maxConcurrentConnectionsPerNode>
</connectionPolicy>
</connectivity>
<procedure name="submitAuthentication" securityTest="wl_unprotected" />
</wl:adapter>
<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="demoAdapter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wl="http://www.ibm.com/mfp/integration"
xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>demoAdapter</displayName>
<description>demoAdapter</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>http</protocol>
<domain>xxxxxx</domain>
<port>xx</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
<!-- Following properties used by adapter's key manager for choosing specific certificate from key store
<sslCertificateAlias></sslCertificateAlias>
<sslCertificatePassword></sslCertificatePassword>
-->
</connectionPolicy>
</connectivity>
<procedure name="getResponse"/>
</wl:adapter>
Android Logcat
D/WLNativeXHR(1202): callback {"headers":{"Date":"Thu, 05 Nov 2015 08:26:14 GMT","Content-Length":"74","P3P":"policyref=\"/w3c/p3p.xml\", CP=\"CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE\"","Expires":"Thu, 01 Jan 1970 00:00:00 GMT","Content-Type":"application/json; charset=UTF-8","X-Powered-By":"Servlet/3.0","Pragma":"no-cache","Cache-Control":"no-cache, no-store, must-revalidate"},"status":200,"responseText":"/*-secure-\n{\"errorMessage\":null,\"isSuccessful\":true,\"authRequired\":true}*/","statusText":"OK"}
上面的日志是我在尝试调用在Android Emulator上测试的适配器过程时看到的日志
请帮我整理一下。在Android中调用适配器时提示您进行身份验证的原因是您正在通过安全测试保护Android应用程序
<android securityTest="MS1" version="1.0">
我觉得这真的不像。