Authorizing HTTP Adapter in IBM Worklight

落花浮王杯 提交于 2019-11-29 08:45:19
Nick Roth

You can specify the authentication mechanism as part of the adapter XML file. Documentation is here: The Authentication element of the HTTP adapter.

I don't have an instance of Worklight Studio in front of me at the moment to check but I would imagine that there is a design view of the adapter XML or some auto completion features to help fill how the details should be specified in the <authentication> block.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="exampleAdapter"
    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>feedRead</displayName>
    <description>feedRead</description>
    <connectivity>
        <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
            <protocol>https</protocol>
            <domain>greenhouse.lotus.com</domain>
            <port>443</port>
            <authentication>
                <basic/>
                <serverIdentity>
                    <username> ${user} </username>
                    <password> ${password} </password>
                </serverIdentity>
            </authentication>  
        </connectionPolicy>
        <loadConstraints maxConcurrentConnectionsPerNode="2" />
    </connectivity>
   <procedure name="getFeed" connectAs="server"/>
</wl:adapter>

How is the feed expecting the credentials to be passed? If it is using Basic Auth, then you can base64 encode your credentials and pass them in the header of the adapter call like this:

function getFeed(){

    var input = {
            method  : 'get',
            headers: {Authorization: "Basic YWRtaW5Ad29ya2xpZ2h0LmlibTpjaGFuZ2VJdCE="},
            path : "/hello",            
            returnedContentType : 'plain'       
    };

    return WL.Server.invokeHttp(input);
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!