Ibm mobilefirst IBM Worklight 6.0-具有基本身份验证的适配器不';t在客户端注销/登录时更新身份验证标头

Ibm mobilefirst IBM Worklight 6.0-具有基本身份验证的适配器不';t在客户端注销/登录时更新身份验证标头,ibm-mobilefirst,worklight-adapters,worklight-security,Ibm Mobilefirst,Worklight Adapters,Worklight Security,我有一个Worklight v6.0应用程序,使用基于适配器的身份验证 适配器是一个HTTP适配器,它使用基本身份验证调用后端REST服务 适配器和后端服务之间没有会话或cookie。在我的适配器描述符中,我已将cookiePolicy设置为忽略\u COOKIES。从适配器到后端的每个请求都使用该请求上的基本auth头进行身份验证 适配器的每个过程都将connectAs设置为:endUser <?xml version="1.0" encoding="UTF-8"?> <wl

我有一个Worklight v6.0应用程序,使用基于适配器的身份验证

适配器是一个HTTP适配器,它使用基本身份验证调用后端REST服务

适配器和后端服务之间没有会话或cookie。在我的适配器描述符中,我已将cookiePolicy设置为忽略\u COOKIES。从适配器到后端的每个请求都使用该请求上的基本auth头进行身份验证

适配器的每个过程都将connectAs设置为:endUser

<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="MyAdapter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wl="http://www.worklight.com/integration" xmlns:http="http://www.worklight.com/integration/http">

<displayName>MyAdapter</displayName>
<description>MyAdapter</description>
<connectivity>
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType" cookiePolicy="IGNORE_COOKIES">
        <protocol>http</protocol>
        <domain>localhost</domain>
        <port>9080</port>
        <!-- Following properties used by adapter's key manager for choosing            
        <authentication>
            <basic />
        </authentication>
    </connectionPolicy>
    <loadConstraints maxConcurrentConnectionsPerNode="2" />
</connectivity>

<procedure name="submitAuthentication"></procedure>

<procedure connectAs="endUser" name="getCurrentUser"
    securityTest="MyAdapter-securityTest" />
</wl:adapter>

MyAdapter
MyAdapter
http
本地服务器
9080

既然您说“物理”退出并重新打开应用程序可以解决这一问题,那么您可以在注销后立即使用
WL.Client.reloadApp()
,以便在注销时保持应用程序流。查看是否有帮助。

在Android上,注销后调用WL.Client.reloadApp()会在移动应用程序和Worklight服务器之间产生一个新的JSessionId,新登录从后端获得正确的信息。在iOS上,我无法查看网络跟踪,但我假设WL.Client.reloadApp不会导致移动应用程序和worklight server之间的新会话,因为第二个登录用户即使在注销处理程序中调用reloadApp(),也会获取第一个用户的数据。在iOS上只获得了一个网络跟踪。reloadApp()也不会导致移动应用程序和worklight server之间的新会话(即使调用了reloadApp,JSESSIONID仍保持不变),第二个用户仍会获取第一个用户的数据。我是否应该在适配器的logout()过程中执行某些操作来清理worklight会话?目前不知道,我们已经为此记录了一个缺陷。