Worklight PushAdapter示例在开发环境(即worklight studio)中运行良好,但在转向生产时会出现耦合问题。
由于安全问题,后端应用程序无法调用推送过程。如果设置securityTest="wl_unprotected"
,它可能是生产中的风险,还是其他任何解决方案?
在onPoll
的{{1}}函数中,如果调用其他适配器的过程,它也会在生产中引发安全问题,尽管在开发中工作正常。
e.g。
PushAdapter:
eventSource
WL.Server.createEventSource({
name: 'PushEventSource',
onDeviceSubscribe: 'deviceSubscribeFunc',
onDeviceUnsubscribe: 'deviceUnsubscribeFunc',
securityTest:'SingleStepAuthAdapter-securityTest',
poll:{
interval: 120,
onPoll: 'getNotificationFromBackend'
}
});
function getNotificationFromBackend(){
var notifications = WL.Server.invokeProcedure({
adapter : 'MessageAdapter',
procedure : 'getMessages',
parameters : []
});
WL.Logger.error("notifications: " + JSON.stringify(notifications));
...
}
你能帮忙吗?谢谢你提前。
答案 0 :(得分:1)
适配器过程的默认安全测试包含Anti-XSRF保护,但可以通过以下任一方式覆盖此配置:
a。实施您自己的身份验证领域。
b。禁用特定过程的身份验证要求。你可以通过添加来实现 securityTest =" wl_unprotected"属性到适配器XML文件中的元素。
有关类似问题,请参阅以下帖子。
IBM Worklight 6.0.0.1 - Push notifications polling not working in Production environment
答案 1 :(得分:0)
Worklight应允许将受企业防火墙保护的侦听端口号分配给推送适配器。如果存在这样的功能,那么应该只是在生产时配置防火墙以仅允许来自特定推送源的推送请求。
如果此功能不可用,则应通过安全测试保护推送适配器。推送源应该在推送数据时使用特殊的登录ID进行身份验证。这应该是可行的。