微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在插件请求中收到403禁止错误

如何解决在插件请求中收到403禁止错误

我正在尝试从我的ICN插件中触发插件请求。请求如下。但是,我从服务器收到403禁止错误

禁止 您无权访问此服务器上的/ navigator / jaxrs / plugin。

https://<icnserver.com>/navigator/jaxrs/plugin?repositoryId=Demo&query=%5B%7B%22name%22%3A%22ID%22%2C%22operator%22%3A%22LIKE%22%2C%22values%22%3A%5B%22123434234%22%2C%22%22%5D%7D%5D&className=Checks&plugin=DemoPlugin&action=DemoService&desktop=Demo

插件JS:

aspect.around(ecm.model.SearchTemplate.prototype,"_searchCompleted",function advisingFunction(original_searchCompleted){
    return function(response,callback,teamspace){
        var args = [];
        var templateName = response.templates[0].template_name;
        var res = response;
        var requestParams = {};
        requestParams.repositoryId = this.repository.id;
        requestParams.query = query;
        requestParams.className = templateName;
        
        Request.invokePluginService("DemoPlugin","DemoService",{
                requestParams: requestParams,requestCompleteCallback: lang.hitch(this,function(resp) {  // success
                    res.rows = resp.rows;
                    res.num_results = resp.rows.length;
                    res.totalCount = resp.rows.length;
                    args.push(res);
                    args.push(callback);
                    args.push(teamspace);
                    original_searchCompleted.apply(this,args);
                })
            }
        ); 
    }
});

sc

解决方法

您需要提供一个security_token才能调用您的服务,因此您需要先登录。 然后,打开浏览器的调试,并在“网络”标签中检查请求。 在那里,您可以看到针对/ navigator / jaxrs / * URI的每个请求都将包含该请求,因此在标头中将包含以下内容:

security_token:163594541620199174

request headers

所以我敢打赌,您尚未在客户端中进行设置(我建议邮递员测试您的服务,否则我会在ICN插件项目中添加一个测试(ICN)功能页面,以便能够对其进行调用正确地)。在功能页面中,您可以使用ecm / model / Request OOTB导航器dojo / javascript类直接调用服务,如CheckinAction.js所示:

        _checkInDocument: function (item,requestData) 
    {
        var self = this;
        var payLoadObject = {requestType: "Get",id: item.id};
        
        Request.postPluginService("DocuSignPlugin","UpdateSignedDocumentService","application/json",{
            requestParams: {
                repositoryId : item.repository.id,serverType : item.repository.type,docId : item.docid,envelopeId: item.attributes.DSEnvelopeID,payLoad: json.stringify(payLoadObject)
            },requestCompleteCallback: function(response) {
                if (response.returncode == 0)
                {
                    item.attributeDisplayValues.DSSignatureStatus = "Checkedin";
                    item.attributes.DSSignatureStatus = 4;
                    item.update(item);
                }
                else if (response.returncode == -1)
                {
                    items = [];
                    items.push(item);
                    self._showLoginDialog(items);
                }                   
            },backgroundRequest : false,requestFailedCallback: function(errorResponse) {
                // ignore handline failures
            }
        });
    },

如您所见,您不必将security_token添加到requestParams中,框架将为您完成。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。