Web services 使用带有HTTP头参数的PEGA 7的REST服务

Web services 使用带有HTTP头参数的PEGA 7的REST服务,web-services,rest,oauth,http-headers,pega,Web Services,Rest,Oauth,Http Headers,Pega,我不是PEGA开发者。但是这个问题是针对任何PEGA开发人员/管理员的。这是我最近在尝试使用REST服务与PEGA 7集成我的应用程序时注意到的一个问题 我从应用程序中创建了一个REST服务,并使用OAuth2.0身份验证托管了它。应用程序必须使用我的服务 为了测试从PEGA到我的应用程序的连接性,我自己创建了一个OAuth令牌,并与PEGA开发人员共享该令牌,让他们跳过授权调用直接调用我的服务 使用任何REST测试工具,如Chrome的REST控制台、APIgee等,我可以通过将http头参数

我不是PEGA开发者。但是这个问题是针对任何PEGA开发人员/管理员的。这是我最近在尝试使用REST服务与PEGA 7集成我的应用程序时注意到的一个问题

我从应用程序中创建了一个REST服务,并使用OAuth2.0身份验证托管了它。应用程序必须使用我的服务

为了测试从PEGA到我的应用程序的连接性,我自己创建了一个OAuth令牌,并与PEGA开发人员共享该令牌,让他们跳过授权调用直接调用我的服务

使用任何REST测试工具,如Chrome的REST控制台、APIgee等,我可以通过将http头参数作为[param name:Authorization¶m value:OAuth]传递来测试我的REST服务

但是PEGA在直接提供http头参数以从PEGA PRPC应用程序测试我的服务时遇到了一个问题

我向PEGA开发人员/管理员提出的问题是

从PEGA在http调用中添加头参数是否困难 当一名开发人员试图从PEGA测试我的服务时,PEGA屏幕在我的请求下与我共享。在此期间,我注意到PEGA没有任何跟踪日志 捕获生成的确切http请求。我们是否确实看不到从REST连接器工具生成的http请求头/正文?
添加头参数相对简单。要从PEGA中的RESTAPI获取信息,需要定义连接REST规则。遗憾的是,我没有足够的声誉在我的答案中发布图片,但我上传了一张标题区的照片到imgur,你们可以在这里看到。确保您告诉您的PEGA开发人员选择常量作为Map From,并像我在图中所做的那样,在Map From键字段中用引号将标记括起来

不幸的是,无法记录完整的传出数据包。如果将活动规则-Connect-REST.pyInvokeRESTConnector的日志记录级别设置为DEBUG,则会在连接过程中记录更多信息,包括完整的传出URL,但不会记录头。对于PEGA开发人员,要更改此活动的日志记录级别,请转到主菜单,单击DesignerStudio->System->Tools->Logs->logging level Settings。将记录器名称设置为Rule_Obj_Activity.pyInvokeRESTConnector.Rule_Connect_REST.Action和要调试的级别


如果这还不足以解决问题,您的PEGA开发人员可以选择添加自己的日志。PEGA中的连接器规则是被调用而不是组装的,创建数据包并调用远程服务的代码在该活动的步骤5 pyInvokeRESTConnector中。该活动可以像其他任何活动一样进行私人签出,因此您可以添加自己的自定义日志,以确保所有内容都在那里正确设置。但是,我强烈建议他们不要在应用程序规则集中重写该活动。私人签出是临时的,所以可以,但覆盖是永久的,如果他们决定升级到另一个版本的PRPC,还将覆盖所有未来的更新。

您可以使用Fiddler工具查看Pega调用您的服务的确切内容

对于OAuth身份验证,请确保将Pega身份验证配置文件设置为OAuth,并正确提取令牌


Fiddler将帮助您了解情况。

嗨,迈克,谢谢您的输入。我相信我的PEGA开发人员确实添加了标题参数,如您所示,但是PEGA收到了来自我的应用程序的401-未经授权的响应。这意味着,他们可以访问我的服务器,但不能进行身份验证。这就是为什么我想知道他们的请求包是如何被构架的。让我分享给我的PEGA开发者。是的,很抱歉我帮不了你更多,这就是我在PEGA内部的技巧。我不确定您对系统的控制程度,但您可以让PEGA开发人员临时将端点更改为您可以控制的位置,以便您可以检查传入数据包的内容。