Ibm mobilefirst Worklight 6.1-如何在适配器级别设置请求标头中的x转发Ip地址
我正在使用worklight 6.1,在请求时在适配器级别获取所需的x转发ip地址时遇到了一些问题。所以现在我从客户端在适配器上发送客户端ip地址,如下所示Ibm mobilefirst Worklight 6.1-如何在适配器级别设置请求标头中的x转发Ip地址,ibm-mobilefirst,worklight-adapters,Ibm Mobilefirst,Worklight Adapters,我正在使用worklight 6.1,在请求时在适配器级别获取所需的x转发ip地址时遇到了一些问题。所以现在我从客户端在适配器上发送客户端ip地址,如下所示 WL.Device.getNetworkInfo(function (networkInfo) { console.log(networkInfo.ipAddress); ipadd = networkInfo.ipAddress;
WL.Device.getNetworkInfo(function (networkInfo) {
console.log(networkInfo.ipAddress);
ipadd = networkInfo.ipAddress;
reqParams["fldAppipAddress"] = networkInfo.ipAddress;
});
var invocationData = {
adapter : "Login",
procedure : "Login",
parameters : [id,reqParams,ipadd],
compressResponse : true
};
在适配器端,我像这样设置标题
var request={
method:'POST',
returnedContentType:'xml',
path:serverPathIs,
headers:{"User-Agent":"","App-Version":"1.6","X-Forwarded-For":Ipaddress},
cookies: {"JSESSIONID":cookiestr},
parameters:jsonstr,
};
即使这样做,我也不会得到x转发ip,请建议正确的方法
如何在http请求的标头中设置x-forwarded-for
@安东
function GetAPICal(fldjsessionid,jsonstr,pass,uid,Ipaddress){
WL.Logger.error(jsonstr);
WL.Logger.info(jsonstr);
//newjson={"fldPassword":enc(pass)};
var output = {};
output = jsonConcat(jsonstr, newjson);
serverPathIs=getServletPathInfo();
if(fldjsessionid){
cookieSplit = fldjsessionid.split('!');
cookiestr = cookieSplit[0]+"!"+cookieSplit[1];
}
else{
cookiestr="123";
}
var request={
method:'POST',
returnedContentType:'xml',
path:serverPathIs,
headers:{"User-Agent":"","App-Version":"1.6","X-Forwarded-For":Ipaddress},
cookies: {"JSESSIONID":cookiestr},
parameters:output,
};
var req = WL.Server.getClientRequest();
var response = WL.Server.invokeHttp(request);
return response;
}
你到底想达到什么目的?从客户端->适配器请求中获取x-forwarded-for标头,并在适配器->后端请求中使用它?无论我们从适配器向后端发出什么请求,我们都希望标头x-forwarded ip在那里就是它。您希望该标头的值是什么?标头:{x-forwarded-for:Ipaddress}这是我从客户端发送的IP地址,所以我希望它作为请求。你能粘贴完整的登录功能代码吗?看起来您从客户端发送了两次ipaddress,我看不出任何原因,您添加了GetAPICal函数,并且您的客户端调用了Login函数。如果不看到拼图的所有部分,就不可能调试流。你能添加所有相关的功能吗?一般来说,您的代码看起来是正确的,它应该将X-Forwarded-For头添加到适配器->后端请求中。你能详细说明到底是什么问题吗?没有添加标题?标题值错误?